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. 得出结果