開発環境は必要に応じて最適なものを使いたい。 Unityでアプリを開発するにあたって、選定を行った。
C#プロジェクトエディタの選定
- Microsoft VisualStudioとJetbrains Riderが候補
- 色々勘案した結果、現在はRiderを使っている
Visual Studioの利点・欠点
- Unityプロジェクト側にプラグインを追加せずに使える
- Riderは専用プラグインが自動的に組み込まれる
- 「どうしてもファイルを増やしたくない」ならこっち
- 日本語環境がある
- Visual Studioである
- エディタ機能は超強力
- Xamarin等、他の環境も使いやすい
- 話がそれるけど、iOSのLayout Editor等の環境はVisual Studioのほうが整備されている
- こっちに慣れておけば、同じC#のXamarinを使う際の抵抗が小さくなるかも
- ReShaperがないとどうにもならない
- 結局Jetbrainsのお世話になるのである
- 有料である
- 会社規模が大きい場合、有料となる
- ライセンス料は結構高い
Riderの利点
- Android StudioやGolandと同様の使いやすさ
- ベースが同じなので、概ね同じように動作する
- 微妙にショートカットや機能が違う
- Visual Studio+ReShaper環境に合わせられる
- サンプルコードだとBreakPointにアタッチできない
- Visual Studioならできる
- Pluginとの兼ね合いかもしれない
- 通常のプロジェクトなら問題ない
- Windows, Ubuntuでは正常動作
Unityの初期設定
Edit > Preferences
- Unity2018から正式に
.Net 4.5 + C#6.0
が使用できるようになった- なのでそれを使う
Edit > Project Settings > Player
から変更
- 必要な参照は NuGet for Unity と Asset Store から取得する
Reactive Extension for Unity -> UniRx
- UnityでもRxを使いたいので導入する
- NuGetで取得すると、古いC#バージョン向けのコードが降ってくる
- MainThreadDispatcher等が無いので、注意する
MainThreadDispatcherの実装
- UnityMainThreadへのアタッチ方法を確認するため、コードを読む
- GlobalなDispatcherを登録していた
- GameObjectが取得できるのがMainThread限定なので、その特性を利用している
- C#世界ではなく、UnityEngine側も利用して実装されている
- MainThreadDispatcherが登録されており、それがMainThreadのPostを担当している
リポジトリ管理
- gitを利用する
- Windowsを使っていると改行コードがズレるので、LFで統一
- .gitattributeで統一しておくといい
- Visual StudioはCRLF+BOMじゃないと正常に動作しなかった気がするけど、直ったかな?
- このあたりはプロジェクトメンバーの構成に合わせて変化するだろう
- Mergerを設定する
.gitconfig
を編集するUnityYAMLMerger
というツールが付属しているので、PATHを通してConfigを設定する