Unity Xlua之Hotfix热补丁 (二)

Unity Xlua之Hotfix热补丁 (二)

一.属性和索引器替换

  • 属性固定的写法set_属性名称,get_属性名称
  • 索引器固定写法set_Item,Set_Item
    private int age;
    private int Age
    {
        get
        {
            return 0;
        }
        set
        {
            age = value;
        }
    }
    private int[] arr = { 1, 2, 3, 4, 5 };
    public int this[int index]{
        get{
            return arr[index];
        }
        set{
            arr[index] = value;
        }
    }
xlua.hotfix(CS.HotfixMain,{
    get_Age = function (self)
        return self.age
    end,
    set_Age = function (self,val)
        print("设置值:"..val)
        self.age = val
    end,
    set_Item = function (self,index,val)
        print("重定向索引器"..index..":"..val)
        self.arr[index] = val
    end,
    get_Item = function (self,index)
        return 0;
    end
})

二.事件操作替换(只做了解即可)

    private event UnityAction action;

    private void Start()
    {
        LuaMgr.GetInstance().Init();
        LuaMgr.GetInstance().LoadFile("Main");

        action += TestUnityAction;
        action += TestUnityAction;
        action += TestUnityAction;
        action -= TestUnityAction;
        action?.Invoke();
    }
xlua.hotfix(CS.HotfixMain,{
    add_action = function (self,del)
        print("Lua")
    end,
    remove_action = function (self,del)
        print("Lua")
    end
})

三.泛型类替换

  • 泛型类需要依次指定泛型参数对于的重定向函数
[Hotfix]
public class HotfixTest<T>
{
    public void Test(T t)
    {
        Debug.Log(t);
    }
}
xlua.hotfix(CS.HotfixTest(CS.System.String),{
    Test = function (self,str)
        print("Lua:"..str)
    end
})

xlua.hotfix(CS.HotfixTest(CS.System.Int32),{
    Test = function (self,int)
        print("Lua:"..int)
    end
})
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值