unity刘国柱热更新设计之Xlua基础学习笔记(一)Lua文件的 ...
一、直接执行字符串方式:(一般用在测试用)//Xlua的环境核心类
LuaEnv env = null;
//定义lua脚本
string strLUa1 = "print('这是我的第一个lua程序')";
//定义调用unity系统类
string strLua2 = "CS.UnityEngine.Debug.Log('This is my Hello Word')";
void Start()
{
env = new LuaEnv();
env.DoString(strLUa1);
env.DoString(strLua2);
}
private void OnDestroy()
{
//释放lua
env.Dispose();
}二、加载Lua文件
1.普通加载方式
[*]在Resources中创建一个lua文件。
unity中文件放置方式
文件的后缀为.lua.txt
文件中写的内容
[*]在unity中调用
//Xlua的环境核心类
LuaEnv env = null;
void Start()
{
env = new LuaEnv();
//通过Resources.Load来加载lua文件 用unity中的TextAsset接受文字
TextAsset txtAsset = Resources.Load<TextAsset>(&#34;LuaStu.lua&#34;);
env.DoString(txtAsset.ToString());
}
private void OnDestroy()
{
//释放lua
env.Dispose();
}2.Require函数进行加载(常用方式)
[*]require就是一个个的调用Loader,查找出匹配的lua文件,然后执行该文件。
[*]注意:
[*]用为resoure只支持有限后缀,放resource下的lua文件需要加上txt后缀。
[*]使用lua开的项目推荐的方式是:整个程序就一个Dostring(&#34;require&#39;main&#39;&#34;),然后在main.lua中加载其他脚本。(这里的Main文件名称可以任意)。
[*]实例:文件放置方式同上。
//Xlua的环境核心类
LuaEnv env = null;
void Start()
{
env = new LuaEnv();
env.DoString(&#34;require&#39;LuaStu&#39;&#34;);//只能加载lua不能加载其他文件所以不用写后缀名
}
private void OnDestroy()
{
//释放lua
env.Dispose();
}3.自定义Loader方式(商用开发方式)
[*]unity文件放置方式
[*]脚本
//Xlua的环境核心类
LuaEnv env = null;
void Start()
{
env = new LuaEnv();
env.AddLoader(CustomMyLoader);
env.DoString(&#34;require&#39;LuaStu&#39;&#34;);//只能加载lua不能加载其他文件所以不用写后缀名
}
byte[] CustomMyLoader(ref string fileName)
{
byte[] byArrayReturn = null;//返回数据
//定义lua路径
string luaPath = Application.dataPath + &#34;/Scripts/LuaScrypts/&#34; + fileName + &#34;.lua&#34;;
//读取lua路径中指定lua文件内容
string strLuaContent = File.ReadAllText(luaPath);
//数据类型转换
byArrayReturn = System.Text.Encoding.UTF8.GetBytes(strLuaContent);
return byArrayReturn;
}
private void OnDestroy()
{
//释放lua
env.Dispose();
}<hr/>提取码:c7o0
提取码:dhhc
页:
[1]