Unity と Visual Studio を使用するためのベストプラクティスBest practices for working with Unity and Visual Studio

Unity で mixed reality アプリケーションを作成する開発者は、Unity と Visual Studio を切り替えて、HoloLens やイマーシブヘッドセットにデプロイされたアプリケーションパッケージを作成する必要があります。A developer creating a mixed reality application with Unity will need to switch between Unity and Visual Studio to build the application package that is deployed to HoloLens and/or an immersive headset. 既定では、Visual Studio の2つのインスタンスが必要です (Unity スクリプトを変更し、1つをデバイスに配置してデバッグします)。By default two instances of Visual Studio are required (one to modify Unity scripts and one to deploy to the device and debug). 次の手順では、単一の Visual Studio インスタンスを使用して開発を行い、Unity プロジェクトをエクスポートする頻度を下げ、デバッグエクスペリエンスを向上させます。The following procedure allows development using single Visual Studio instance, reduces the frequency of exporting Unity projects, and improves the debugging experience.

イテレーション時間の向上Improving iteration time

Unity での .NET スクリプティングバックエンドのサポートは、unity 2018 で非推奨とされ、Unity 2019 + で削除されました。Support for .NET scripting back-end in Unity is being deprecated in Unity 2018 and removed in Unity 2019+. そのため、 IL2CPPに切り替えることをお勧めします。Thus, it is advised to switch to IL2CPP. ただし、Unity から Visual Studio へのビルド時間が長くなる可能性があります。However, this may incur longer build times from Unity to Visual Studio. 反復処理を高速化するために、最適なコンパイル結果を得るために環境を設定する必要があります。To improve for faster iteration, one should set up their environment for best compilation results.

  1. 毎回同じディレクトリにプロジェクトをビルドして、インクリメンタルビルドを活用し、ビルド済みのファイルを再利用します。Leverage incremental building by building your project to the same directory every time, re-using the pre-built files there
  2. プロジェクト & ビルドフォルダーに対するマルウェア対策ソフトウェアスキャンを無効にするDisable anti-malware software scans for your project & build folders
    • Windows 10 設定アプリでウイルス & 脅威保護を開くOpen Virus & threat protection under your Windows 10 settings app
    • [ウイルス & 脅威保護の設定] の下の [設定の管理] を選択します。Select Manage Settings under Virus & threat protection settings
    • [除外] セクションで [除外の追加または削除] を選択します。Select Add or remove exclusions under the Exclusions section
    • [除外の追加] をクリックし、Unity プロジェクトコードとビルド出力を含むフォルダーを選択します。Click Add an exclusion and select the folder contain your Unity project code and build outputs
  3. SSD を使用してビルドするUtilize an SSD for building

詳細については、「 IL2CPP のビルド時間の最適化」を参照してください。Please read Optimizing Build Times for IL2CPP for more info. また、IL2CPP Scripting バックエンドでのデバッグに関する説明も参照してください。Also please read Debugging on IL2CPP Scripting Back-end.

さらに、 Unityscriptanalyzer Visual Studio 拡張機能をインストールすることを検討してください。Further, consider installing the UnityScriptAnalyzer Visual Studio extension. このツールは、よりC#最適化された方法で記述できる可能性のあるコードについて Unity スクリプトを分析します。This tool analyzes your Unity C# scripts for code that may be able to be written in a more optimized manner.

Visual Studio Tools for UnityVisual Studio Tools for Unity

ダウンロードVisual Studio Tools for UnityDownload Visual Studio Tools for Unity

Visual Studio Tools for Unity の利点Benefits of Visual Studio Tools for Unity

  • ブレークポイントを配置し、変数や複雑な式を評価することで、Visual Studio から Unity のエディター内再生モードをデバッグします。Debug Unity in-editor play mode from Visual Studio by putting breakpoints, evaluating variables and complex expressions.
  • Unity プロジェクトエクスプローラーを使用して、Unity に表示されるのとまったく同じ階層のスクリプトを検索します。Use the Unity Project Explorer to find your script with the exact same hierarchy that Unity displays.
  • Unity コンソールを Visual Studio 内で直接取得します。Get the Unity console directly inside Visual Studio.
  • ウィザードを使用すると、スクリプトをすばやく作成したり、スクリプトに移動したりできます。Use wizards to quickly create or navigate to scripts.

簡単C#にチューニングできるようにクラス変数を公開するExpose C# class variables for easy tuning

クラス変数を公開するには、2つの方法があります。There are two ways to expose class variables. これを行うには、プライベート変数に [SerializeField] 属性を追加することをお勧めします。The recommended way to do so is to add the [SerializeField] attribute to your private variables. これにより、エディターからアクセスできますが、プログラムで公開することはできません。This allows them to be accessed from the editor but not programatically exposed. もう1つの方法はC# 、クラス変数をパブリックにして、エディターの UI で公開することです。The other option is to make C# class variables public to expose them in the editor UI.

どちらの方法でも、エディターでの再生中に変数を簡単に調整できるようになります。Both approaches make it possible to easily tweak variables while playing in-editor. これは特に、整備士プロパティを調整する場合に便利です。This is especially useful for tuning interaction mechanic properties.

Windows SDK または Unity アップグレード後に UWP Visual Studio ソリューションを再生成するRegenerate UWP Visual Studio solutions after Windows SDK or Unity upgrade

ソース管理にチェックインされた UWP Visual Studio ソリューションは、新しい Windows SDK または Unity エンジンにアップグレードした後に最新の状態になります。UWP Visual Studio solutions checked in to source control can get out-of-date after upgrading to a new Windows SDK or Unity engine. アップグレード後にこの問題を解決するには、Unity から新しい UWP ソリューションを構築し、すべての相違点をチェックインソリューションにマージします。You can resolve this after the upgrade by building a new UWP solution from Unity, then merging any differences into the checked-in solution.

テキスト形式のアセットを使用して、コンテンツの変更を簡単に比較するUse text-format assets for easy comparison of content changes

アセットをテキスト形式で保存すると、Visual Studio でのコンテンツ変更の相違点を簡単に確認できるようになります。Storing assets in text format makes it easier to review content change diffs in Visual Studio. これは、資産のシリアル化モードを [テキストを強制する] に変更することで、[プロジェクト設定の編集 > > エディター] で有効にすることができます。You can enable this in "Edit > Project Settings > Editor" by changing Asset Serialization mode to Force Text. ただし、テキスト資産ファイルの変更をマージすると、エラーが発生しやすく、推奨されません。そのため、ソース管理システムで排他的なバイナリのチェックアウトを有効にすることを検討してください。However, merging text asset file changes is error-prone and not recommended, so consider enabling exclusive binary checkouts in your source control system.

関連項目See also