Lua实验(二)U3D C#调用lua

来源:互联网 发布:民族证券软件下载 编辑:程序博客网 时间:2024/05/23 16:20

1. 将lua 打包成lib

2. 新建工程,引用lib,然后新建文件

#define EXPORTBUILD //加载头文件 #include "DllTest.h"#include "lua.h"#include "lauxlib.h"#include "lualib.h"#include "luaconf.h"//设置函数int _DLLExport MyADD(int x,int y) { return x+y; }int _DLLExport MyLuaDoString(char *abc) { int re;lua_State* L = luaL_newstate();  luaL_openlibs(L);  luaL_dostring(L, abc);  //luaL_dofile(L , abc);re = lua_tonumber(L, -1);lua_close(L);  return re;}
以及头文件。 注,
re = lua_tonumber(L, -1);

是为了取出返回值返回

3. 打包成dll后放入U3D plugins 中

4. U3D中新建test.CS

using UnityEngine; using System.Collections; using System.Runtime.InteropServices; public class Test : MonoBehaviour { [DllImport ("Lua003")]  private static extern int MyLuaDoString(string abc);   void Awake() { int aa = MyLuaDoString("print(1+2);return 4;"); Debug.LogWarning("-----"); Debug.LogWarning("-----"+aa); }   void Update () {}  }


5. 得出结果


0 0