Required Attribute特性:用于任何對象屬性,如果對應屬性沒有賦值,則在檢查器中出現對應的提示消息。
直接添加特性
[Required]
public GameObject MyGameObject;
也可以自定義消息
[Required("自定義錯誤消息.")]
public Rigidbody MyRigidbody;
當然可以使用$關鍵字使用動態消息
public string DynamicMessage = "Dynamic Message";
[Required("$DynamicMessage")]
public GameObject GameObject_DynamicMessage;
[Required("$ReturnStringFunction")]
public GameObject GameObject_DynamicMessage1;
public string ReturnStringFunction()
{
return "菜鳥海瀾";
}
也可以顯示不同的消息類型,但是None和Info不顯示,目前不知道就是這么設定的還是BUG?、
[Required("$DynamicMessage", InfoMessageType.None)]
public GameObject GameObject_None;
[Required("$DynamicMessage", InfoMessageType.Info)]
public GameObject GameObject_Info;
[Required("$DynamicMessage", InfoMessageType.Warning)]
public GameObject GameObject_Warning;
[Required("$DynamicMessage",InfoMessageType.Error)]
public GameObject GameObject_Error;
完整示例代碼
using Sirenix.OdinInspector;
using UnityEngine;
public class RequiredExample : MonoBehaviour
{
[Required]
public GameObject MyGameObject;
[Required("自定義錯誤消息.")]
public Rigidbody MyRigidbody;
public string DynamicMessage = "Dynamic Message";
[Required("$DynamicMessage")]
public GameObject GameObject_DynamicMessage;
[Required("$ReturnStringFunction")]
public GameObject GameObject_DynamicMessage1;
public string ReturnStringFunction()
{
return "菜鳥海瀾";
}
[Required("$DynamicMessage", InfoMessageType.None)]
public GameObject GameObject_None;
[Required("$DynamicMessage", InfoMessageType.Info)]
public GameObject GameObject_Info;
[Required("$DynamicMessage", InfoMessageType.Warning)]
public GameObject GameObject_Warning;
[Required("$DynamicMessage",InfoMessageType.Error)]
public GameObject GameObject_Error;
}