0%

Unity中使用sLua的 超丶简单基础教程(一)

前言

网上Unity使用lua的文章本来就少..slua又是个偏小众的lua库..文章更少..

已有的文章又有点坑…比如方法名关键字写错啦..真的是坑多= =

所以总结一片超简单教学= =

这篇文章面向刚开始学习lua 想在unity项目中使用sLua库的同学..

正文

导入sLua

  • 1.直接下载最新版:sLua库下载地址
  • 2.然后将解压后的Assets文件复制到你项目的Assets目录下,不要放到其他地方.
  • 3.等待Unity编译完成,会出现SLua菜单如下图.然后选择Slua-All-Make命令 手动生成针对当前版本的Unity接口文件

图1-1

做到这步你已经可以在Assets/Slua/example中查看sLua的官方例子了.每一个Scenes都展示了一种使用方法.

自己使用Lua脚本

创建一个新的Scene然后创建一个CreateEmpty创建一个C#文件挂载上去.然后在C#文件中写如下代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using UnityEngine;
using SLua;

public class Test : MonoBehaviour{

private static LuaState ls_state;

void Start()
{
ls_state = new LuaState();
ls_state.doString("print(\"Hello Lua!\")");

}

}

成功后的样子是这样:

注意有些教程中LuaState在声明成属性时就初始化了,但是会报错,一定要在Awake方法或Start或需要用到的时候再进行初始化…

读取lua文件

C#代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using UnityEngine;
using System.Collections;
using SLua;
using System.IO;

public class OpenLuaFile : MonoBehaviour{

public LuaState state;// sLua脚本代理

void Start()
{

state = new LuaState();

state.loaderDelegate = ((string fn) =>
{
string file_Path = Directory.GetCurrentDirectory() + "/Assets/Script/Lua/" + fn;
Debug.Log(file_Path);
return File.ReadAllBytes(file_Path);
});

//执行脚本
state.doFile("HelloLua.lua");
}
}

在上面设定的路径中创建lua文件

代码:

1
print("你好 我是文件里的Lua!")

“/Assets/Script/Lua/“为放置ua文件的目录,这个根据自己需求随意改变.

其他

本篇教程很基础,如果有精力会将之后学习到的知识都整理成博客分享给大家~