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

前言

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

上一篇博客讲了一下简单调用LuaState读取Lua代码并执行

本篇要讲一下如何更改路径并使得Lua可以调用UnityEngine代码的方法

虽然简短但也是长时间爬坑试验出来的(因为基础教程真的好少啊….)希望对大家有帮助..

正文

在创建一个新的场景,一个新的CreateEmpty把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  
26  
using System;  
using System.Collections;  
using System.Collections.Generic;  
using UnityEngine;  
using System.IO;  
using SLua;  
  
public class TestLua : MonoBehaviour {  
  
	void Start () {  
		LuaSvr svr = new LuaSvr();// 如果不先进行某个LuaSvr的初始化的话,下面的mianState会爆一个为null的错误..  
        LuaSvr.mainState.loaderDelegate += LuaReourcesFileLoader;  
		svr.init(null, () => // 如果不用init方法初始化的话,在Lua中是不能import的  
		{  
            svr.start("Test");  
		});  
	}  
  
    // SLua Loader代理方法  
    private static byte[] LuaReourcesFileLoader(string strFile)  
    {  
        // 这里为了测试就不先判断为空,开发的时候再加上  
        string filename = Application.dataPath + "/Scripts/Lua/" + strFile.Replace('.', '/') + ".txt";  
        return File.ReadAllBytes(filename);  
    }  
}  

—|—

然后在Assest/Scripts/Lua/中创建一个Lua.txt脚本 命名路径都可以更改代码如下:

1  
2  
3  
4  
5  
6  
7  
8  
import "UnityEngine"  
  
function main()  
    print("Lua创建了一个Cube")  
    local cube = GameObject.CreatePrimitive(PrimitiveType.Cube)  
end  
  
main()  

—|—

效果图

其他

上一篇主要说了一下如何引用SLua读取lua脚本
这一篇主要说了一下Lua如何调用UnityEngine的方法
下一遍我会说一下开发一个中间层,把Start Awake Update等方法都传递到Lua中
最终完成一个纯Lua项目

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

糖果

糖果
LUA教程

Lapis框架的常用处理方法

Lapis框架的常用处理方法 Continue reading

MoonScript实现选择排序

Published on February 26, 2017

MoonScript与Redis客户端

Published on January 19, 2017