侧边栏壁纸
  • 累计撰写 23 篇文章
  • 累计创建 8 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

Unity扩展-继承GUI组件Button

付心武士
2024-08-04 / 0 评论 / 0 点赞 / 0 阅读 / 1060 字

Unity扩展-继承GUI组件Button

  1. 创建脚本MyButton继承Button
    public class MyButton : Button
    {   
    
    [SerializeField] public AudioClip clickAudio;
    
    public override void OnPointerClick(PointerEventData eventData)
    {
        base.OnPointerClick(eventData);
        if (eventData.button != PointerEventData.InputButton.Left)
            return;
        Debug.Log("MyButton");
    }
    }
    
  2. 创建脚本MyButtonEditor继承ButtonEditor;用来在属性检查器里显示自己添加的属性clickAudio。
    [CustomEditor(typeof(MyButton), true)]
    [CanEditMultipleObjects]
    public class MyButtonEditor : ButtonEditor
    {
    private SerializedProperty clickAudio;
    
    protected override void OnEnable()
    {
        base.OnEnable();
        clickAudio = serializedObject.FindProperty("clickAudio");
    }
    
    public override void OnInspectorGUI()
    {
        base.OnInspectorGUI();
        EditorGUILayout.Space();
        serializedObject.Update();
        EditorGUILayout.PropertyField(clickAudio); 
        serializedObject.ApplyModifiedProperties();
    }
    }
    
    PS:MyButtonEditor可以存放到Editor文件夹。存放于Editor文件夹下的资源只在编辑器下可以使用,打包发布时不会一同发布。
0

评论区