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

5,707 阅读2分钟

前言

网上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#文件中写如下代码:

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#代码

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文件

代码:

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

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

其他

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