パッケージをimportする時のオプション

Go

package main import ( f "fmt" // 任意の文字をつけるとプログラム内ではその文字で代用できる(今の場合はf) _ "github.com/wdpress/gosample" // 使わないパッケージには - をつける . "strings" // . をつけるとパッケージ名を省略できる ) func main() {…

はじめてのGo勉強メモ

Go

gihyo.jp 作成したいプログラムをすぐに実行したい場合はターミナルで go run hello.go 単にコンパイルする場合は go build hello.go で、hello という実行形式のバイナリファイルが生成される。 その後 ./hello で実行できる。 コードの整形は go fmt hello…

一度に複数のEntityを生成するSystem

IBufferElementData について

参考 【Unity】 ECS まとめ(前編) - エフアンダーバー 【Unity】ECSで配列を格納する Dynamic Buffers - テラシュールブログ Interface IBufferElementData | Package Manager UI website

ISharedComponentData について

保存と復元を可能にするためにシリアライズ可能である必要があるので必ず[Serializable]をつける。 共有のために同一性判定が必要なため、 参照型を含む場合にはSystem.IEquatable<T>の実装とGetHashCodeのオーバーライドが必須 (現在のバージョンEntities0.8.0</t>…

ルームから退出する時の処理

public async Task LeaveAsync() { await room.RemoveAsync(this.Context); Broadcast(room).OnLeave(self); }

GetInMemoryStarageとは

gRPCアプリがiOSでクラッシュする件について

参考 gRPC + IL2CPP for Unity fails to build · Issue #22485 · grpc/grpc · GitHub grpc unity iOS: crash at Grpc.Core.Internal.PlatformApis.GetUnityRuntimePlatform on start up · Issue #19262 · grpc/grpc · GitHub

iPhoneの実機からMacに立てたローカルサーバーにアクセスできない

注意 Macのlocalhost != iPhoneのlocalhost MacにおけるlocalhostはiPhoneにおけるlocalhostではない。 つまり、Macでlocalhostで立ち上げて、それをiPhoneからlocalhostで参照することはできない。 ファイアーウォールを解除する 参考 iOS 実機から MacBook…

Bitcodeとは

iOS

Bitcode...コンパイルしたiOSのプログラムの中間形式 .NETでいうILのようなもの 参考 NJF Wiki - xpwiki : iOSではBitcodeという仕組みがあり、うまく使うと便利なのですが、コンパイル時にエラーが出てしまうことがあります。 [iOS/Bitcodeをオフにする] ht…

【Unity】gRPCを用いたプロジェクトをiOS向けにビルドした時のlinker command failed with exit code 1 エラーの対処法

はじめに gRPCを用いてUnityで作成したプロジェクトをiOS向けにビルドすると、お馴染みの linker command failed with exit code 1 (use -v to see invocation) というエラーと共に、 **/Libraries/Plugins/Grpc.Core/runtimes/ios/libgrpc_csharp_ext.a(grp…

Unity起動時にPackageの参照が全て外れてしまっている時の対処法

原因 原因は不明 解決法 Assets/ 以下でAssembly Definitionを作成し、その直後に削除する。 FinderでAssetsフォルダ内にある、先ほど削除したAssemblyに対応するcsprojファイルを削除する。

【Unity】MonoScript is registered as both Editor and Runtime script! というエラーについて

はじめに 何の前触れもなく次のようなエラーが出ることがありました。 MonoScript is registered as both Editor and Runtime script! エラーの原因 Unityの内部では、どのスクリプトがエディタスクリプトで、どのスクリプトがランタイムスクリプトであるか…

MessagePack for C#とEntitiesを両方入れた時にエラーが出る

環境 Unity 2019.3.6f1 MessaePack for C# v2.1.90 Entities v0.8.0 エラーの内容 MessagePack for C# とEntitiesをInstallすると次のようにエラーが出ます。 PrecompiledAssemblyException: Multiple precompiled assemblies with the same name System. Ru…

gRPC channelの作り方

// gRPCのchannelを作成する // Insecure の場合はポート番号80がデフォルト // Secure の場合はポート番号443がデフォルト this.channel = new Channel("localhost:12345", ChannelCredentials.Insecure);

MagicOnionで機能を追加する時の流れ

はじめに 送受信に使うカスタムオブジェクトを定義 自分で定義したクラスを送受信で使いたい場合は次のようにし、共有用のディレクトリに入れる。 [MessagePackObject] public class Player { [Key(0)] public string Name { get; set; } [Key(1)] public Ve…

127.0.0.1とlocalhost

127.0.0.1 自分自身を表す特別なIPアドレス 同一ホスト内でしか通信を行わない localhost localhostというのはこの127.0.0.1を表す定数 localhost:xxxx のようにすると、localhostのxxxx番ポートを表す。 参考 127.0.0.1とlocalhostと0.0.0.0の違い - Qiita

MagicOnion環境構築(Visual Studio for Mac)パターンA

環境 macOS Catalina 10.15.3 Unity 2019.3.4f1 Visual Studio for Mac Community 8.4.8 環境構築 フォルダ作成 全体のプロジェクトを入れるためのフォルダを作成する。 ここではMagicOnionSampleとする Unityプロジェクト作成 MagicOnionSampleフォルダの中…

MagicOnion環境構築(macOS+Rider)パターンB (非推奨)

環境 macOS Catalina 10.15.3 Unity 2019.3.4f1 Jet Brains Rider 2019.3.4 環境構築 はじめに 全体のプロジェクトを入れるためのフォルダを作成する。 ここではMagicOnionSampleとする Unityプロジェクト作成 MagicOnionSampleフォルダの中にUnityのプロジ…

MagicOnion環境構築(macOS+Rider)

環境 macOS Catalina 10.15.3 Unity 2019.3.5f1 Jet Brains Rider 2019.3.4 環境構築 フォルダ作成 全体のプロジェクトを入れるためのフォルダを作成する。 ここではMagicOnionSampleとする Unityプロジェクト作成 MagicOnionSampleフォルダの中にUnityのプ…

zshでパスを通す時の注意

zsh

~/.zshenvファイルに以下のような文を追加することを考える export $GOPATH=$HOME/go export PATH=$PATH:$GOPATH/bin この時、=の前後にはスペースを空けてはならない。

Go言語のコマンドについて

Go

go run <file> : プログラムをすぐに実行 go build <file> : コンパイル go fmt <file> : コードを自動で整形 godoc : packageのドキュメントを表示</file></file></file>

Go言語基本文法(5) ~Goroutine, Channel~

Go

Goroutine Channel package main import "fmt" func sum(s []int, c chan int) { sum := 0 for _, v := range s { sum += v } c <- sum // send sum to c } func main() { s := []int{7, 2, 8, -9, 4, 0} c := make(chan int) go sum(s[:len(s)/2], c) go su…

Go言語基本文法(4) ~method, interface, error, panic~

Go

メソッド package main import ( "fmt" "math" ) type Vertex struct { X, Y float64 } func (v Vertex) Abs() float64 { return math.Sqrt(v.X*v.X + v.Y*v.Y) } func main() { v := Vertex{3, 4} fmt.Println(v.Abs()) // 5 x := Vertex{5, 12} fmt.Printl…

Go言語基本文法(3) ~ポインタ、構造体、配列、スライス、Maps、関数値、クロージャ~

Go

pointer package main import "fmt" func main() { i, j := 42, 930 p := &i // iを指すポインタpを宣言 fmt.Println(*p) // 42 *p = 21 // iの値を書き換える fmt.Println(i) // 21 p = &j // pの指す変数をjに変更 *p = *p / 30 // pを通してjの値を書き換…

Go言語基本文法(2) ~for, if, switch, defer~

Go

for package main import "fmt" func main() { sum1 := 0 for i := 0; i < 10; i++ { sum1 += i } fmt.Println(sum1) // 45 sum2 := 1 for sum2 < 1000 { sum2 += sum2 } fmt.Println(sum2) // 1024 } 無限ループ package main func main() { for { } } if p…

Go言語基本文法(1) ~関数、変数、型、定数~

Go

標準出力 package main import ( "fmt" "math/rand" "time" ) func main() { fmt.Println("Hello, World") // Hello, World fmt.Println("My favorite number is", rand.Intn(100)) // My favorite number is 81 fmt.Println("The time is", time.Now()) // …

リダイレクト

C++

コマンドで以下のように打ち込むことにより、実行の結果をファイルに書き込むことができる。 ./program > hello.txt また、入力を受け取るような実行ファイルの場合、 ./foo < boo.txt のようにすることにより、boo.txtから入力を受け取ることができる。 ま…

C++ チートシート

C++

標準出力 // helloと改行を出力するプログラム int main() { std::cout << "hello"s; } int main() { std::cout << "aaa"s << "bbb"s << "ccc"s; } 出力結果はaaabbbccc 文字列の結合 int main() { std::cout << "hello"s + "world"s; } 出力結果はhelloworl…

ビルドシステムの使い方

C++

Makefileという名前のファイルを作成 Makefile内に次のように記述する program : 事前用件 [TAB] レシピ 例えば program : source [TAB] cat source > program 事前用件の数を増やすこともできる source : source01 source02 source03 cat source01 source02…