バッテラのハローワールド研究室

エンジニア、プログラミングに関する情報を掲載中!

【Unity】クラス型の変数をDebug.Logで出力したい場合

Unity

はじめに

今日はUnityについて勉強していきます。

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}";
    }
}

難点としては変数が増えたり減ったりするたびにコードを書き換えないといけないので少し手間ですが。。