http://wiki.unity3d.com/index.php/Tip_of_the_day
Feb 2013
Tip #50 Ensure conditional compilation symbols are present
コンパイル記号があることの確認
もし Unity のコードで条件付きコンパイル記号が必要な場合、このコードが便利かもしれない。Unity が自身のスクリプトをコンパイルした後、InitializeOnLoad 属性のあるクラスを実行します。 コード スニペットに含まれる SetupConditionalCompilation メソッドをコールすることで条件付きコンパイル記号が Unity プロジェクトで永続することを保証できます。もし記号がなくて追加された場合、Unity コンソールに通知を書き出します。
[InitializeOnLoad] public class GridMappingSetup { static GridMappingSetup() { var types = new[] { BuildTargetGroup.Standalone, BuildTargetGroup.WebPlayer }; var toInclude = new[] { "CBXControls", "GridMapping", "QuickTools", "ToolService", "TileMaterialCreation" }; SetupConditionalCompilation(types, toInclude); } } public static void SetupConditionalCompilation(BuildTargetGroup[] platformTargets, string[] symbolsToInclude) { foreach (var type in platformTargets) { var hasEntry = new bool[symbolsToInclude.Length]; var conditionals = PlayerSettings.GetScriptingDefineSymbolsForGroup(type).Trim(); var parts = conditionals.Split(';'); var changed = false; foreach (var part in parts) { for (int i = 0; i < symbolsToInclude.Length; i++) { if (part.Trim() == symbolsToInclude[i].Trim()) { hasEntry[i] = true; break; } } } for (int i = 0; i < hasEntry.Length; i++) { if (!hasEntry[i]) { conditionals += (String.IsNullOrEmpty(conditionals) ? String.Empty : ";") + symbolsToInclude[i]; changed = true; } } PlayerSettings.SetScriptingDefineSymbolsForGroup(type, conditionals); if (changed) { Debug.Log(String.Format("Updated player conditional compilation symbols for {0}: {1}", type, conditionals)); } } }---------
地味なTipsでも積み重ねて力にしていこうぜ!
0 件のコメント:
コメントを投稿