-- JSRUN引擎2.0,支持多达30种语言在线运行,全仿真在线交互输入输出。
-- 001 执行lua程序
using XLua;
using System.IO;
public class LuaDemo01 : MonoBehaviour
{
private LuaEnv luaenv;
void Start()
{
luaenv = new LuaEnv();
luaenv.DoString("Lua程序.lua");
luaenv.DoString("print('Hello world!')");
-- 在lua里调用C# 类
luaenv.DoString("CS.UnityEngine.Debug.Log('Hello world')");
--读取lua文件 lua 文件完整文件名需要 helloworld.lua.txt
TextAsset ta = Resources.Load<TextAsset>("helloworld.lua");
luaenv.Dostring(ta.text)
-- 系统内置加载方式
luaenv.Dostring("require 'helloworld'"); --loader,其中有一个loader会去寻找Resources文件夹里面的lua文件
-- 自定义loader lua文件放在自定义目录 而非Resources目录的情况下
luaenv.AddLoader(MyLoader);
luaenv.DoString("require 'test007'");
}
private byte[] MyLoader(ref string filePath)
{
string absPath = Application.streamingAssetsPath + "/" + filePath + ".lua.txt";
return System.Text.Encoding.UTF8.GetBytes(File.ReadAllText(absPath));
}
private void OnDestroy()
{
luaenv.Dispose(); -- 释放掉lua环境
}
}