unity+Xlua demo阅读

unity+Xlua demo阅读 1

第一次写文章,以前光白嫖CSDN了。
就记录下对XLua的学习历程吧

下载Xlua

附git地址:https://github.com/Tencent/xLua
公司网又打不开github了,就不附图了,下载完在这里插入图片描述
Asset里大概是项目需要加的资源了
在这里插入图片描述
plugins 和 XLua 拷贝进项目,大概这样
在这里插入图片描述
本人之前只看了菜鸟教程里的lua基础教程,讲了些知识点还没记牢
本来想着按照网上给的学习教程自己试试开始学习的,但是看到Xlua提供官方的文档,还是中文的便顺便看了一会,发现还是挺有用的,
在这里插入图片描述
在这里插入图片描述
突然看见下面还有官方提供的examples,就顺便看看吧,开始学习第一步:

  1. helloworld
    果然什么语言都逃脱不了helloworld
    简单查看了下,
    在这里插入图片描述
    LuaEnv.DoString 就可以直接执行字符串代码,没什么好说的
  2. U3DScripting
    LuaTable meta = luaEnv.NewTable();
    meta.Set("__index", luaEnv.Global);
    纠结了下_index是何方神圣,后来又回菜鸟教程查了下才知道,果然只过一遍基础教程并不牢靠… 下图附释意
    在这里插入图片描述
    看C#代码就觉得吧C#和lua脚本拆成两部分,吧lua需要的变量传递过去,lua脚本处理就可以了,
// A code block
var foo = 'bar';
 			scriptEnv = luaEnv.NewTable();

            // 为每个脚本设置一个独立的环境,可一定程度上防止脚本间全局变量、函数冲突
            LuaTable meta = luaEnv.NewTable();//新建了个表
            meta.Set("__index", luaEnv.Global);//这就是_index用处。。只理解可能是为了容错
            scriptEnv.SetMetaTable(meta);//对指定 table 设置元表(metatable)

感觉是通过scriptEnv.Set这个方法对Lua侧传递变量

// A code block
var foo = 'bar';
 		scriptEnv.Set("self", this);	//传递
 		 foreach (var injection in injections)
            {
                scriptEnv.Set(injection.name, injection.value);//传递GameObject
            }
           

scriptEnv.Get 这个方法取出方法

 	        private Action luaStart;
        	private Action luaUpdate;
        	private Action luaOnDestroy;
 	 		scriptEnv.Get("start", out luaStart);
            scriptEnv.Get("update", out luaUpdate);
            scriptEnv.Get("ondestroy", out luaOnDestroy);
           

在lua脚本中再这么使用
在这里插入图片描述

最后简单调用就可以了
在这里插入图片描述

再记录几个简单的点吧, 访问变量用 . 访问组件或者方法用:

eee 写这个东西好烦躁,就这样吧,下面的3456789…再说吧

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值