Unity中使用sLua的 超丶簡單基礎教程

軒轅小羽發表於2018-01-20

前言

網上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!\")");

    }

}

複製程式碼

成功後的樣子是這樣:

Unity中使用sLua的 超丶簡單基礎教程

注意有些教程中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檔案的目錄,這個根據自己需求隨意改變.

Unity中使用sLua的 超丶簡單基礎教程

Unity中使用sLua的 超丶簡單基礎教程

其他

本篇教程很基礎,如果有精力會將之後學習到的知識都整理成部落格分享給大家~

相關文章