原文地址:http://blog.csdn.net/qq_30168505/article/details/52743603
其实作者自带的那个说明已经很详细了,不过为了赚点访问量,我还是自己也来个简单的使用说明,顺便最近自己用的多,复习一下.
对于Tolua插件,我的介绍是基于作者自带的框架工程之中的那10个样例来做的~~
具体样例的位置如下:
现在就让我们开始Tolua的学习吧!
案例1:
按照程序员的传统,学习一样新东西都是从一个最简单的HelloWorld开始,这里也不例外:
样例代码如下:
![](http://static.blog.csdn.net/images/save_snippets.png)
using UnityEngine;
using LuaInterface;
public class HelloWorld : MonoBehaviour
{
void Awake()
{
LuaState lua = new LuaState();
string hello =
@"
print('hello tolua#')
";
lua.DoString(hello, "hello");
lua.CheckTop();
lua.Dispose();
lua = null;
}
}
运行效果图如下:
通过以上例子的学习,我们可以知道以下几点:
1:使用Tolua的相关类及方法都需要调用命名空间LuaInterface
2:调用lua脚本必须要先创建一个lua的虚拟机,而创建的步骤就是LuaState lua = new LuaState();, 创建一个LuaState型的对象,这个就是lua的虚拟机,后面的lua的与C#的交互全部依仗这个东西。
3:lua中直接运行一段lua脚本最简单的方法就是 lua.DoString, 该方法声明如下:
public object[] DoString(string chunk, string chunkName = "LuaState.DoString")
4:使用完lua虚拟机之后记得要销毁,具体操作如下:先进行lua虚拟机栈的判空,具体对应的就是
lua.CheckTop , 然后就是析构掉lua虚拟机,具体方法为
lua.Dispose
案例2:
核心代码其实就是如下几段:
lua = new LuaState();
lua.Start();
//注意使用这个样例的时候记得调整lua虚拟机的文件加载路径,作者自带的那个可能有问题
string fullPath = Application.dataPath + "/LuaFramework/ToLua/Examples/02_ScriptsFromFile";
lua.AddSearchPath(fullPath);
if (GUI.Button(new Rect(50, 50, 120, 45), "DoFile"))
{
strLog = "";
lua.DoFile("ScriptsFromFile.lua");
}
else if (GUI.Button(new Rect(50, 150, 120, 45), "Require"))
{
strLog = "";
lua.Require("ScriptsFromFile");
}
效果图如下:
整个案例中我们所要学会的主要的知识点如下:
1:调用lua.Start方法完成lua虚拟机的一些基础初始化,里卖弄的内容主要包括一些环境的配置和一些lua的基本库的加载,默认一般工程中创建该虚拟机时都要初始化
2:重要方法lua.AddSearchPath ,通过此方法添加lua文件的路径,只有添加了文件路径之后,在该路径上的lua文件才可以被读取
3:lua文件的2个加载方法,lua.DoFile , lua.Require ,参数为lua文件名,推荐使用Require,因为Require 读取文件是会检查该文件是否被加载过,如果被加载过,则直接返回一个索引,否则则加载并返回一个索引,而Dofile则是每次调用都会重新加载使用,相对来说对性能等的消耗都会大一些,而且感觉不利于一些后面代码的书写
今天先将这么多吧!后面的我会慢慢地再更~~~