😽
Unity デバッグ 開発用ビルド
開発ビルドを有効にする
BuildSetting > Development Build を有効にする
Debug.Logはリリースビルドでも実行されるので
unity用シンボル
DEBUGはUnity固有シンボルではないので使わない方が良い
#if DEVELOPMENT_BUILD || UNITY_EDITOR
/*開発用ビルド時、エディタで実行したい処理*/
#endif
#if DEVELOPMENT_BUILD
/*開発用ビルド時のみ*/
#endif
#if UNITY_EDITOR
/*エディタのみ*/
#endif
unity用ではないシンボル
DEBUGはUnity固有シンボルではない
#if DEBUG
/*開発用ビルド時のみ実行したい処理*/
#endif
リリース時にDebug.Logを出力しないようにする
Debugクラスのメソッドはリリースビルドでも機能するので、そのままだと配布したアプリでもログが出力される
Unityの設定でログ出力を無効にできるがメソッドの呼び出しコストは残る
Conditional属性を付けて呼び出しそのものを無効にする方法
使えないケースがあり万能ではない
スクリプトの文字化け
C#の文字列補間式
var sb = new StringBuilder();
sb.Append(name);
sb.Append("は");
sb.Append(price);
sb.Apeend("円です");
var message = sb.ToString();
var message = string.Format("{0}は{1}円です", name, price);
var message = $"{name}は{price}円です";
//StringBuilderが良いが使える
var message = "";
message += name;
message += "は";
message += price;
message += "円です";
LISTをログに出す
//String
List<string> names = new List<string>(){"a", "b", "c"};
Debug.Log(string.Join(",", names));
//Int
List<int> nums = new List<int>(){1, 2, 3, 4, 5};
Debug.Log(string.Join(",", nums.Select(n => n.ToString())));
partialクラスでファイル分割
Player.cs
public partial class Player : MonoBehaviour {
}
Player_Walk.cs
public partial class Player {
}
partialクラスがブレークポイントで止まらない?
Discussion