(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発したゲームです!


Unity6.6でManaged Code Variantが追加され、DEBUGが有効になる条件が変わり、新たなシンボルも追加された話【Unity】


このエントリーをはてなブックマークに追加


  • この記事でのバージョン

Unity 6000.6.6.0a7


はじめに

Unity6.6からビルド時にC#コードを最適化するか、チェックやProfiler用の処理を含めるかを切り替える

Managed Code Variantという設定が追加されました。




ということで今回は、このManaged Code Variantの紹介記事です!


Managed Code Variant

まず設定はEdit/Project Settings...の、


PlayerにあるOther Settings/Optimization/Managed Code Variantから変更出来ます。


デフォルトはReleaseで、以下の4種類があります。

  • Debug : C#コードの最適化を無効にし、下記のシンボルを有効にする。デバッガーで使う時用
  • Checked : 最適化を有効にしたまま一部シンボルを有効にする。重めの検証処理を残したい時用
  • Instrumented : 最適化を有効にしたまま一部シンボルを有効にする。Profilerや計測用
  • Release : 最適化を有効にし、シンボルも無効にする。リリース時用


そして有効になるシンボルは以下の通りで、

#if DEBUG
/*Debugの時だけ実行したい処理*/
#endif

#if UNITY_ENABLE_CHECKS
/*DebugかCheckedの時に有効にしたい処理*/
#endif

#if UNITY_INCLUDE_INSTRUMENTATION
/*Debug、Checked、Instrumentedの時に有効にしたい処理*/
#endif


DebugにはCheckedとInstrumentedの内容が含まれ、

CheckedにはInstrumentedの内容も含まれるため、基本はDebugかReleaseを使えばいいかと思います。

なお、これらのシンボルはUnityエディタ上でも有効になるため、注意が必要です。


さらに上記の通り、DEBUGが有効な条件がManaged Code VariantがDebugの時だけになったので、

Development Buildを有効にしてもDEBUGは有効にならなくなったという点にも注意が必要です。

(以前まではDevelopment Buildを有効にすればDEBUGも有効になっていた)