如何高效利用xlua进行游戏开发与优化?
- 内容介绍
- 文章标签
- 相关推荐
本文共计232个文字,预计阅读时间需要1分钟。
1. 使用LuaEnv初始化并执行Lua代码luaLuaEnv luaenv=new LuaEnv();luaenv.DoString(print('Hello world'););luaenv.DoString(CS.UnityEngine.Debug.Log('Hello world'););
2. 自定义loaderluavoid Start(){ LuaEnv env=new LuaEnv(); env.AddLoader(MyLoader);}
1.互相调用
LuaEnv luaenv = new LuaEnv(); luaenv.DoString("print(‘Hello world‘);"); luaenv.DoString("CS.UnityEngine.Debug.Log(‘Hello world‘)");
2.自定义loader
void Start() { LuaEnv env = new LuaEnv(); env.AddLoader(MyLoader); env.DoString("require ‘helloworld‘"); env.Dispose(); } private byte[] MyLoader(ref string filePath) { //print(filePath); // string s = "print(123)"; // return System.Text.Encoding.UTF8.GetBytes(s); string absPath = Application.streamingAssetsPath + "/" + filePath + ".lua.txt"; return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(absPath)); // return null; }
3.获取lua 变量
LuaEnv env = new LuaEnv(); env.DoString("require‘CSharpCallLua‘"); int a = env.Global.Get<int>("a"); print(a); env.Dispose();
4.接口映射加
[CSharpCallLua] interface IPerson { string name { get; set; } string age { get; set; } }
5.接口是引用拷贝 类是值拷贝
6. 传参要多加一个 lua 没有this
person ={
name="siki",age=100,12,2,
eat=function(self,a,b)
print(a+b);
end
}
7.
本文共计232个文字,预计阅读时间需要1分钟。
1. 使用LuaEnv初始化并执行Lua代码luaLuaEnv luaenv=new LuaEnv();luaenv.DoString(print('Hello world'););luaenv.DoString(CS.UnityEngine.Debug.Log('Hello world'););
2. 自定义loaderluavoid Start(){ LuaEnv env=new LuaEnv(); env.AddLoader(MyLoader);}
1.互相调用
LuaEnv luaenv = new LuaEnv(); luaenv.DoString("print(‘Hello world‘);"); luaenv.DoString("CS.UnityEngine.Debug.Log(‘Hello world‘)");
2.自定义loader
void Start() { LuaEnv env = new LuaEnv(); env.AddLoader(MyLoader); env.DoString("require ‘helloworld‘"); env.Dispose(); } private byte[] MyLoader(ref string filePath) { //print(filePath); // string s = "print(123)"; // return System.Text.Encoding.UTF8.GetBytes(s); string absPath = Application.streamingAssetsPath + "/" + filePath + ".lua.txt"; return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(absPath)); // return null; }
3.获取lua 变量
LuaEnv env = new LuaEnv(); env.DoString("require‘CSharpCallLua‘"); int a = env.Global.Get<int>("a"); print(a); env.Dispose();
4.接口映射加
[CSharpCallLua] interface IPerson { string name { get; set; } string age { get; set; } }
5.接口是引用拷贝 类是值拷贝
6. 传参要多加一个 lua 没有this
person ={
name="siki",age=100,12,2,
eat=function(self,a,b)
print(a+b);
end
}
7.

