卜若的代码笔记-XLUA系列-第一章:Hello World

1.因为需要热更新的缘故,需要研究一波XLUA,这个系列主要是讲XLUA,看得懂就看吧(建议由UNITY基础再看,没有的一般看不懂)

 

XLUA是腾讯推出的开源lua框架

源码地址:

https://github.com/Tencent/xLua

2.实现一个HelloWorld

 void Start()
        {
            LuaEnv luaenv = new LuaEnv();
            luaenv.DoString("CS.UnityEngine.Debug.Log('hello world')");
            luaenv.Dispose();
        }

我们可以看到,将一个原本直接调用的Debug函数,通过字符串的方式进行调用。

这就是LUA的基本策略-代码的动态配置。

因为字符串是可以自动生成的(c#不支持代码生成,支持代码生成的例子可以参考js,html,而现在,你可以加一个lua)

lua的这种操作,让我想起了sql语法,比如JDBC里面call sql语句,就是这种策略。

2.1 我们的习惯是Debug.Log()

那么是否支持呢?

测试代码:

            LuaEnv luaenv2 = new LuaEnv();
            luaenv2.DoString("Debug.Log('是否支持Debug!')");
            luaenv2.Dispose();

测试结果: 

显然不行。

这样就可以了。所以,标准很重要。

其实原理很容易想得到,如果你学过反射的话,我的C#编程技巧里面讲过反射的基本原理,你就会知道,定位一个对象,需要知道它的包的位置。所以!你需要加上CS.UnityEngine.xxx

就是为了从命名空间去定位到这个对象!

3.封装

所以,为了便于Debug,我们一般就会封装一个Tool

public void Log(object value) {

            LuaEnv luaenv = new LuaEnv();
            luaenv.DoString("CS.UnityEngine.Debug.Log('"+value.ToString()+"')");
            luaenv.Dispose();

        }

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值