コガネブログ

平日更新を目標に Unity や C#、Visual Studio、ReSharper などのゲーム開発アレコレを書いていきます

【Unity】【Odin - Inspector and Serializer】パラメータの内容を編集不可能な文字列で表示する「DisplayAsString」属性

目次

「DisplayAsString」属性

「DisplayAsString」属性を使用すると
変数やプロパティの内容を、 編集不可能な文字列で Inspector に表示できます

f:id:baba_s:20170720153107p:plain

using Sirenix.OdinInspector;
using System;
using UnityEngine;

public class Example : MonoBehaviour
{
    [DisplayAsString] public int i;
    [DisplayAsString] public Color color;
    [DisplayAsString] public Vector3 vec;
    [DisplayAsString] public Bounds bounds;
    [DisplayAsString] public Rect rect;
    [DisplayAsString] public Hoge hoge;
}

[Serializable]
public class Hoge
{
    public override string ToString()
    {
        return "ピカチュウ";
    }
}

使い方

下記の様に記述するだけで使用できます

[DisplayAsString] public int i;
[DisplayAsString] public Color color;
[DisplayAsString] public Vector3 vec;
[DisplayAsString] public Bounds bounds;
[DisplayAsString] public Rect rect;
[DisplayAsString] public Hoge hoge;

独自のクラスや構造体においても
ToString 関数をオーバーライドすることで
ToString 関数が返す文字列を
Inspector で表示できるようになります

[DisplayAsString] public Hoge hoge;

...

[Serializable]
public class Hoge
{
    public override string ToString()
    {
        return "ピカチュウ";
    }
}

参考サイト様

Odin Inspector and Serializer | Improve your workflow in Unity