【Unity】xlua热更新记录

1. 更换图片资源
local engine = CS.UnityEngine
local loadAssetFunc = xlua.get_generic_method(engine.AssetBundle, "LoadAsset")
-- sssStart是测试方法
xlua.hotfix(CS.Test, "sssStart",
    function (self)
    	-- 获取ab包      
        local hotUpManager = self: GetComponent ("HotUpManager");  		
        local ab = hotUpManager.ab;
        -- 指定类型为Sprite
        local spriteAsset = loadAssetFunc(engine.Sprite)
        local sprite = spriteAsset (ab, "Cancel.png")

        self.btn.image.sprite = sprite;
        print(self.btn.image.sprite);
     end)
2. 标点使用
  1. self可以理解为C#的this
  2. 要使用静态方法或参数时, 使用.,使用非静态方法时使用:
	// C#
    int commonParam;
    static int StaticParam;
    static void StaticMethod()
    {
  
    }

    void CommonMethod()
    {

    }
    
--lua
self.commonParam;
self.StaticParam;
self.StaticMethod;
self:CommonMethod;
3. 字符串连接

lua中使用..来连接字符串,如

 local text = Seconds.. "秒";

+则被认为是加法运算的操作

4. 整除

lua中除法/会得到一个小数,如

print(60/60) 
--1.0
print(66/60) 
--1.1

而使用//会直接整除,如

print(60//60) 
--1
print(66//60) 
--1
5. Vector

如,对RectTransform的sizeDelta赋值

self:GetComponent("RectTransform").sizeDelta = CS.UnityEngine.Vector2(300, 219);
6. 委托

Lua中没有复合运算符 不能+=

-- 绑定委托
self.dele=self.dele+testFun;
-- 解绑委托
self.dele=self.dele-testFun;

function testFun( ... )
	print("测试委托绑定");
end
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值