## 3. Essentials
3.1. Show In Inspector
3.1.1. ShowInInspector
[ShowInInspector]可以用于任何成员,然后显示在Inspector面板中,但是通过该属性被显示出来并不意味着它被序列化了
3.2. Enable If and Disable If
3.2.1. EnumToggleButtons
类似[ToggleLeft],[EnumToggleButtons]也可以切换标签是否显示,在[EnableIf]/[DisableIf]中填入类型参数即可
[EnumToggleButtons]
public InfoMessageType SomeEnum;
public bool IsToggled;
[EnableIf("SomeEnum", InfoMessageType.Info)]
public Vector2 Info;
[EnableIf("SomeEnum", InfoMessageType.Error)]
public Vector2 Error;
[EnableIf("SomeEnum", InfoMessageType.Warning)]
public Vector2 Warning;
[EnableIf("IsToggled")]
public int EnableIfToggled;
[DisableIf("IsToggled")]
public int DisableIfToggled;
[DisableIf("SomeObject")]
public Vector3 EnableWhenNull;
[EnableIf("SomeObject")]
public Vector3 DisableWhenNull;
3.2.2. EnableIf/DisableIf
EnableIf/DisableIf也可以根据字段是否为null来决定是否启用
3.3. Show If and Hide If
3.3.1. ShowIf/HideIf
ShowIf/HideIf类似上面EnableIf/DisableIf的用法,只是它是决定是否显示,同时也可以根据字段是否为null来决定
3.4. Hide or Disable In Editor or Play Mode
3.4.1. 四种类型
- HideInPlayMode——PlayMode隐藏
- HideInEditorMode——EditorMode隐藏
- DisableInPlayMode——PlayMode禁用
- DisableInEditorMode——EditorMode禁用
3.5. Value Dropdowns
之前说过,略
3.6. Required
3.6.1. Required
可以对任何Object属性使用[Required]标签,当该属性丢失的时候就会绘制一个消息框
- string ErrorMessage——消息
- InfoMessageType MessageType——消息类型
3.7. Read Only
之前说过,略
3.8. Assets Only
3.8.1. AssetsOnly
[AssetsOnly]也是一个对Object使用的标签,并且将其限定为项目中的Asset而不是Scene中的Asset
3.8.2. SceneObjectsOnly
[SceneObjectsOnly]也是一个对Object使用的标签,并且将其限定为Scene中的Asset而不是项目中的Asset
3.9. Validate Input
3.9.1. ValidateInput
[ValidateInput]可以对任何属性使用,用来确认该Object是否符合条件
- string DefaultMessage——默认提示信息
- string MemberName——用于检查是否符合条件的函数/属性名
- InfoMessageType MessageType——消息类型
- bool IncludeChildren——是否包括子类
- bool ContiniousVa