组件的常用属性在编辑器平台和组件代码内部都可以查看和使用,位置:继承ScriptManager的Main类中,常用属性及说明见下表:

属性类型属性说明
BObjectIdString组件Id
AnimStatusInt姿态状态
SkinStatusInt皮肤状态
CurStatusInt运行模式逻辑状态
PropertiesDynamicProperty[]动态属性
StatusEnumsEnumDescription[]逻辑状态枚举
AnimStatusEnumsEnumDescription[]动画状态枚举
EventEnumsEnumDescription[]运行模式事件枚举
EditorEventEnumsEnumDescription[]编辑模式事件枚举

组件可以自定义多种动态属性,可以在编辑器模式下设置属性值,在组件内部调用。

动态属性值类型属性说明
InputIntInt整数类型输入
InputFloatFloat浮点数类型输入
InputStringString字符串类型输入
Label显示文字
DropDownInt下拉菜单
SliderFloat浮点数类型滑动条
IntSliderInt整数类型滑动条
ToggleBool选择框
ToggleGroup选择框容器
Panel动态属性容器,用于分组属性
Foldout可折叠面板动态属性容器,用于分组属性

通常在Main类的Awake函数或者编辑模式(EditorModeInitialized)初始化动态属性

public void Awake()
{
    List<EnumDescription> list = new List<EnumDescription>();
    list.Add(new EnumDescription(1, "Item1"));
    list.Add(new EnumDescription(2, "Item2"));
    list.Add(new EnumDescription(3, "Item3"));
    Properties = new DynamicProperty[9] {
    new InputIntProperty("血量",100),
    new IntSliderProperty("强度",5,2,10),
    new InputFloatProperty("InputFloat",10.2f),
    new InputStringProperty("InputString","Test"),
    new LabelProperty("Label"),
    new ToggleProperty("Toggle",true),
    new ToggleProperty("Toggle2",false),
    new SliderProperty("SliderFloat",45.3f,12.5f,78.3f),
    new DropDownProperty("DropDown",list,1)};
}

为组件初始化动态属性后,就可以在编辑器组件的属性面板里来查看或者修改属性值,如下图:

1539310666971.png

在编辑器里修改动态属性会实时同步到组件代码里,如果需要其他处理,比如验证属性值是否合规并通知用户,则需要重写PropertiesChanged方法:

public override void PropertiesChanged(DynamicProperty[] pros)
{
    base.PropertiesChanged(pros);
    //Todo规范验证
}