目次
「ValidateInput」属性
「ValidateInput」属性を使用すると
意図しない値が設定された時にエラーメッセージを表示できるようになります
using Sirenix.OdinInspector; using UnityEngine; public class Example : MonoBehaviour { [ValidateInput( "HasRidgebody" )] public GameObject go1; [ValidateInput( "HasRidgebody", "Ridgebody がアタッチされていません" )] public GameObject go2; private bool HasRidgebody( GameObject gameObject ) { if ( gameObject == null ) return true; return gameObject.GetComponent<Rigidbody>() != null; } [ValidateInput( "IsPositive" )] public int i; private bool IsPositive( int i ) { return 0 <= i; } }
使い方
値が意図したものかどうかを bool 値で返す関数を定義した上で
ValidateInput 属性の引数にその関数の名前を文字列で指定します
[ValidateInput( "HasRidgebody" )] public GameObject go1; private bool HasRidgebody( GameObject gameObject ) { if ( gameObject == null ) return true; return gameObject.GetComponent<Rigidbody>() != null; }
第2引数でエラーメッセージを設定することもできます
[ValidateInput( "HasRidgebody", "Ridgebody がアタッチされていません" )] public GameObject go2;
参考サイト様
Odin Inspector and Serializer | Improve your workflow in Unity