在unity中使用SLua创建lua虚拟机,执行字符串,执行lua文件 使用Slua在unity中调用lua文件中的函数 在unity中编写类,在lua中创建类和调用类 在unity中使用SLua创建lua虚拟机,执行字符串,执行lua文件 //test3.cs using UnityEngine; using System.Collections; using SLua; using System.IO; using System; public class test3 : MonoBehaviour { //使用Slua接口创建一个lua虚拟机 private static LuaState ls_state = new LuaState(); void Start () { //修改读取的默认路径 LuaState.loaderDelegate = ((string fn) => { //设置lua文件目录 string file_path = Directory.GetCurrentDirectory() + "/Assets/lua_script/" + fn; Debug.Log(file_path); return File.ReadAllBytes(file_path); }); //执行字符串 ls_state.doString("print(\"hello world\")"); //执行lua文件 ls_state.doFile("test.lua"); } } print("load successfully") 使用Slua在unity中调用lua文件中的函数 using UnityEngine; using System.Collections; using SLua; using System.IO; using System; using LuaInterface; public class test3 : MonoBehaviour { // Use this for initialization void Start () { LuaState ls_state = new LuaState(); LuaState.loaderDelegate = ((string fn) => { string file_path = Directory.GetCurrentDirectory() + "/Assets/lua_script/" + fn; Debug.Log(file_path); return File.ReadAllBytes(file_path); }); //初始化LuaObject对象,如果没有这一步将无法对luafunction进行call LuaObject.init(ls_state.L); ls_state.doFile("test.lua"); //获取脚本中的函数 LuaFunction mul = ls_state.getFunction("mul"); //执行 double result = (double)mul.call(2, 3); Debug.Log(result); } } function mul(v1,v2) return v1*v2 end 在unity中编写类,在lua中创建类和调用类 这里出了很大问题,在lua中使用类中的静态方法来创建该类的时候一直出现产生nil的情况,现在还没有解决。 [Unity]使用Slua框架开发Unity项目的重要步骤 1 16.7.5/19.46 ← Previous Post Next Post →