在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
网上的案例大部分是官方的案例,个人的案例还是比较少的。我这个案例比较通俗易懂 unity需要的控件有两个:一个是button和input
C#代码如下: using System.Collections; using System.Collections.Generic; using UnityEngine; using XLua; using UnityEngine.UI; using System; public class LuaDemoScript : MonoBehaviour { public TextAsset textAsset; public CMyClass[] lists; private LuaTable runTable; internal static LuaEnv luaEnv = new LuaEnv(); //初始化lua的加载器 public void Awake() { runTable = luaEnv.NewTable(); //普通表 LuaTable metaTable = luaEnv.NewTable(); //元表 metaTable.Set("__index", luaEnv.Global); //把元方法放入元表里面 runTable.SetMetaTable(metaTable); //把元表放入普通表 metaTable.Dispose(); //销毁元表 runTable.Set("self", this); //把当前对象的指针传给普通表。方便在XLua里面用 for(int i = 0;i < lists.Length; i++) //循环控件。赋值给表 { runTable.Set(lists[i].name, lists[i].go); } luaEnv.DoString(textAsset.text,"LuaDemo.lua", runTable); } } XLua脚本如下: self:GetComponent("Button").onClick:AddListener( function() local t = loginname:GetComponent("InputField") local val = t.text if val == "" then print("值不能为空") else print(val) end end ) 注意:如果把XLua脚本放入Unity项目中,是不能以lua作为后缀名的,而是以txt为后缀。如果lua脚本文件中有中文的话需要在文件中转换成unf-8格式
C#脚本放在button控件上。 然后执行就可以了
|
请发表评论