强行扩展Unity原生组件

本文介绍了一种在Unity中创建自定义UI Toggle组件的方法,该组件集成了Lua脚本管理和声音效果触发功能。通过继承Unity原生的Toggle类并添加自定义属性SoundID,可以在点击事件中播放特定的声音,并通过LuaManager调用Lua脚本来实现更复杂的交互逻辑。

效果图:
在这里插入图片描述
Scripts:

using UnityEngine.EventSystems;
using UnityEngine.UI;
using UnityEngine;


namespace H2Engine
{
    [XLua.LuaCallCSharp]
    public class H2Toggle : Toggle
    {
        private ILua_H2Button luaH2Button;

        public int SoundID = 9;

        public override void OnPointerClick(PointerEventData eventData)
        {
            if (luaH2Button == null)
            {
                luaH2Button = LuaManager.Global.Get<ILua_H2Button>("H2Button");
            }
            luaH2Button.OnClick(SoundID);
            base.OnPointerClick(eventData);
        }       
    }
}

Editor:

using UnityEditor;
using UnityEditor.UI;

namespace H2Engine {

    [CustomEditor(typeof(H2Toggle))]
    public class H2ToggleEditor : ToggleEditor
    {
        SerializedProperty sp;
        protected override void OnEnable()
        {
            base.OnEnable();
            sp = serializedObject.FindProperty("SoundID");
        }

        public override void OnInspectorGUI()
        {
            base.OnInspectorGUI();
            EditorGUILayout.PropertyField(sp);
            serializedObject.ApplyModifiedProperties();
            EditorUtility.SetDirty(target);
        }
    }



}


评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值