1.使用toLua,脚本必须引用 LuaInterface命名空间。
2.初始化一个Lua状态机,代码是LuaState lua = new LuaState(); lua.Start();
3.lua执行一段代码是lua.DoString(hello, "HelloWorld.cs"); 第一个参数是代码字符串,第二个参数是该状态机所在的类。
4.lua的释放 lua.CheckTop(); lua.Dispose(); lua = null; 第一个方法是干嘛的,第二个方法是释放lua,第三个方法是将lua变量变为空。
例子:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using LuaInterface;
/// <summary>
/// made by zyc
/// </summary>
public class MyHelloWorld : MonoBehaviour {
LuaState lua;
// Use this for initialization
void Start () {
lua = new LuaState();
// lua.Start();
lua.DoString(@"print('Hello toLua')");
lua.Dispose();
lua = null;
}
// Update is called once per frame
void Update () {
}
}
隐藏了lua.Start();方法,发现程序报错了,于是在Lua的构造函数中写入了Start();方法,问题解决。
public LuaState()
{
if (mainState == null)
{
mainState = this;
}
LuaException.Init();
L = LuaNewState();
stateMap.Add(L, this);
OpenToLuaLibs();
ToLua.OpenLibs(L);
OpenBaseLibs();
LuaSetTop(0);
InitLuaPath();
Start();
}