PlayMaker Action Attributes详情

发布时间 2023-11-24 15:25:14作者: 成长很痛苦

1.ActionTarget   定义操作使用的对象类型。组织者用来制作相关的上下文菜单   

ObjectType 在公共字段上使用,定义FsmEnum和FsmObject类型。

    [ActionTarget(typeof(Image),"gameObject")]
    public class PlayMakerAttributes : FsmStateAction
    {
        [ObjectType(typeof(Image))]
        public FsmOwnerDefault gameObject; // ActionTarget 和 ObjectType 对FsmOwnerDefault 未生效

        [ObjectType(typeof(Image))]
        public FsmObject gameObject1; // ActionTarget 和 ObjectType FsmObject 可正常限制

        public override void OnEnter()
        {
        }
    }

 

2. ActionCategory 参数用字符串 会生成对应字符串的Actions ,参数用枚举ActionCategory.UI 当前Action 会在 UIActions 内

    [ActionCategory("PlayMakerAttributes 学习")]
    public class PlayMakerAttributes : FsmStateAction
    {
        public FsmOwnerDefault gameObject;
    }
}

    [ActionCategory(ActionCategory.UI)]
    public class PlayMakerAttributes : FsmStateAction
    {
        public FsmOwnerDefault gameObject;
    }

Tooltip 定义滚动提示。在类或任何公共字段上使用。

    [Tooltip ("用于测试Attributes的类")]
    public class PlayMakerAttributes : FsmStateAction
    {
        [Tooltip ("用于获取对象")]
        public FsmOwnerDefault gameObject;
    }

     

4.HelpUrl 定义一个url,用于操作标题旁边的帮助按钮。

 

    [HelpUrl("www.baidu.com")]    
    public class PlayMakerAttributes : FsmStateAction
    {
        public FsmOwnerDefault gameObject;
    }

5. Note 显示关于操作的额外注释,以下和 Tooltip 使用区分差别

    [Tooltip ("用于测试Attributes的类")]
    [Note("显示关于操作的额外注释")]
    public class PlayMakerAttributes : FsmStateAction
    {
        public FsmOwnerDefault gameObject;
    }

 

 

 6.RequiredField 在用户必须定义的任何公共字段上使用。如果该参数未定义,编辑器将显示一个错误。

    public class PlayMakerAttributes : FsmStateAction
    {
        [RequiredField]
        public FsmOwnerDefault gameObject;
    }

7.Title 为编辑器中的操作字段定义新的显示名称。

    public class PlayMakerAttributes : FsmStateAction
    {
        [Title("主界面物体")]  
        public FsmOwnerDefault gameObject;
    }

 8.CheckForComponent 使用公共GameObject, FsmGameObject或FsmOwnerDefault字段来检查指定的游戏对象是否具有所需的组件。否则,将在字段下显示错误。

    public class PlayMakerAttributes : FsmStateAction
    {
        [CheckForComponent (typeof(Image))]  
        public FsmOwnerDefault gameObject;
    }

 

 9.HasFloatSlider  在公共浮动字段上使用以显示滑块。(您可以为滑块指定最小/最大值,但是您仍然可以在编辑字段中输入超出该范围的值。这是故意的……)

    public class PlayMakerAttributes : FsmStateAction
    {
        [HasFloatSlider(0,100)]
        public FsmFloat health;
    }

10.ArrayEditor 使用此属性显示FsmArray变量的适当编辑器。

 
    public class PlayMakerAttributes : FsmStateAction
    {
     //("数组内的类",“数组显示item的名称”,“当前的数组长度 0表示可变”,“最小长度”,“最大长度”) [ArrayEditor(VariableType.GameObject,
"选中的Item",0,1,15)] public FsmArray gameObjects; }

 11.ActionSection 在公共字段上使用,可在该字段上方创建一个粗体section标签。

    public class PlayMakerAttributes : FsmStateAction
    {
        [ActionSection("这是一个数组")]                             
        public FsmArray gameObjects;

    }

 12.UIHint 在公共字段上使用,以帮助组织者显示最适合数据类型的编辑器。

   public class PlayMakerAttributes : FsmStateAction
    {
        [UIHint(UIHint.TextArea)]
        public FsmString gameObjects;

    }

  以下是 UIHint枚举对应的效果

  Animation  在字符串字段上使用,以添加动画浏览器按钮。浏览器将尝试在目标游戏对象上查找动画。

  Behaviour  在字符串字段上使用以添加行为弹出按钮。弹出窗口将尝试查找目标游戏对象的行为。

  Coroutine   在字符串字段上使用以添加协程弹出按钮。弹出窗口将尝试查找目标游戏对象上的协程方法。

  Description 在字符串字段上使用,可在大型只读信息框中显示文本。

  Layer 使用一个整数字段来显示一个图层弹出按钮。

  Script 在字符串字段上使用,以添加脚本弹出按钮。弹出窗口将尝试在先前指定的游戏对象上查找脚本。

  Tag  在字符串字段上使用以显示标签弹出按钮。

  TextArea 在字符串字段上使用可使用更大的文本编辑字段。

  Variable 在Fsm变量字段(FsmFloat, FsmInt, FsmBool…)上使用,显示一个变量弹出按钮,用于选择该类型的变量。

13.HideInInspector 在要隐藏在操作编辑器中的公共字段上使用。

14.HideIf 在公共字段上使用,指定方法名称。编辑器将调用该方法来确定是否应该显示该字段。返回true以隐藏字段,返回false以显示字段。

    public class PlayMakerAttributes : FsmStateAction
    {
        public int testInt1 = 10;

        [HideIf("CheckCondition")]
        public FsmString gameObjects;

        //返回true以隐藏字段,返回false以显示字段。
        public bool CheckCondition(){
            if(testInt1 == 10){
                return true;
            }
            return false;
        }

    }

    

15 SettingsMenuItem 使用公共静态方法将菜单项添加到操作的settings menu中

 SettingsMenuItemState  使用一个公共静态方法返回由SettingsMenuItem(上面)定义的设置菜单项的选中状态。

       private static bool showPreviewCurve = true;

        [SettingsMenuItem("Show Easing Preview")]                                          
        public static void ToggleEasingPreview()
        {
            showPreviewCurve = !showPreviewCurve;
            EditorPrefs.SetBool("showPreviewPrefsKey", showPreviewCurve);
        }

        [SettingsMenuItemState("Show Easing Preview")]                                    
        public static bool GetPreviewState()
        {
            return showPreviewCurve;
        }

 16 PreviewField  在公共字段上使用,可指定在编辑器中的字段下绘制预览的方法。(后续补充

17  DisplayOrder 在公共字段上使用可更改编辑器中参数的显示顺序。在自定义操作编辑器中使用继承时非常有用。例如,你在一个基编辑器类中指定了一些你想要显示在编辑器顶部的通用参数。

    public class PlayMakerAttributes : FsmStateAction
    {
        public int testInt1 = 10;

        [DisplayOrder(0)]
        [RequiredField]
        [Tooltip("The GameObject to tween.")]
        [UIHint(UIHint.Variable)]
        public FsmOwnerDefault gameObject;

    }

 18 NoErrorCheck  在公共字段上使用可关闭该字段的错误检查。例如,如果一个动作定义了在转换中未使用的事件,通常会得到“未使用的事件”错误。如果您知道它们实际上以其他方式使用,则可以添加此属性以消除错误。