Odin Attributes 为Unity开发者提供了更多的自定义选项,使得开发过程更加高效和愉悦。通过使用这些特性,开发者可以创建更加专业和用户友好的编辑器界面,从而提升整个开发团队的工作效率。
Required 特性:用于任何对象属性,如果对应属性没有赋值,则在 Inspector 中出现对应的提示消息。
1. 直接添加特性
[Required]
public GameObject MyGameObject;
2. 也可以自定义消息
[Required("自定义错误消息.")]
public Rigidbody MyRigidbody;
3. 当然可以使用$关键字使用动态消息
public string DynamicMessage = "Dynamic Message";
[Required("$DynamicMessage")]
public GameObject GameObject_DynamicMessage;
[Required("$ReturnStringFunction")]
public GameObject GameObject_DynamicMessage1;
public string ReturnStringFunction()
{
return "菜鸟海澜";
}
4. 也可以显示不同的消息类型,但是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;
}