■開発環境
はじめに
Unityでログを出すにはDebug.Log
は皆さんわかってると思いますが、Debug.Log
はintやfloatとプリミティブなデータ型を表示は正常ですがクラス型だとうまくいきません。
今回はクラス型変数をDebug.Log
で出力する方法について共有します。
ダメな例
まずはダメな例を見てみましょう。普通にクラス型変数をDebug.Log
にぶっこみます
public class Hoge { public int val = 0; } var hoge = new Hoge(); Debug.Log(hoge); // >> Hoge
これだとただクラス名が表示されちゃいます。
ToStringをオーバーライドしよう
全てのクラスはToString()
をオーバーライドすることができます。
ToString()
の中で各変数に対して出力するコードを書けばいいのです。
public class Hoge { public int val = 0; public override string ToString() { return $"[Hoge]val={val}"; } }
難点としては変数が増えたり減ったりするたびにコードを書き換えないといけないので少し手間ですが。。