ToLua(LuaFramework) - ToLua開篇與項目演示案例-tolua最全教程

開篇前言:
學習 tolua 需要有 lua 基礎。學習 tolua 需要有 lua 基礎。學習 tolua 需要有 lua 基礎
重要的事情說三遍

-------------準備工作-----------------
tolua框架 git hub 下載地址:

方法一:
https://github.com/topameng/tolua
github 打不開的建議更改 hosts 地址

方法二:
github.com
在這裏插入圖片描述

上邊兒的兩種方式都可以進行一個下載,下載完了以後我們能夠得到一個這樣的壓縮包:
在這裏插入圖片描述
然後就是解壓,完成了以後 ,使用 Unity 打開,需要注意的是 最好使用 2017版本及以下的
打開的時候可能稍微的有點慢,所以這裏需要拿出約會等女孩子的那個精神…哈哈哈,我是等夠了。後來
我:我已經到了你宿舍樓下(其實我還在宿舍翹着二郎腿)
女孩子:嗯呢,那我下來了
我:好的,別讓我等太久哦(這個時候還能抽根菸兒,洗個臉,吹吹頭髮然後出門兒,你會發現女孩子還沒出門兒…)

繼續回到我們的正題:
在這裏插入圖片描述
打開工程以後會彈出一個這樣的提示框,生成一些文件
就像是前邊兒說的,如果你用的是 2017 以上的話,那麼會出現報錯:
在這裏插入圖片描述
這是因爲新版本的Unity有些屬性和接口已經廢棄了的原因,我們需要特殊處理一下
一個是Light類,一個是QualitySettings類,這兩個類我們一般不需要在lua中使用,所以我們不對他們生產Wrap即可:
打開CustomSettings.cs,把 _GT(typeof(Light)), 和 _GT(typeof(QualitySettings)), 這兩行註釋掉
然後單擊菜單【Lua】-【Clear wrap files】清理掉Wrap
然後再單擊菜單【Lua】-【Generate All】重新生成Wrap,
然後再重新點擊菜單【LuaFramework】-【Build Windows Resource】生成lua資源。
生成成功後,我們可以在StreamingAssets中看到很多AssetBundle文件
在這裏插入圖片描述
但是博主建議大家的話上來先不要玩高配,先一步一步來。老老實實的用 2017 版的
這個時候,我們再來看看他 的資源管理窗口裏邊都是有那些東西的。
在這裏插入圖片描述
打開了這個CS類以後,可以看到有一些看到這個腳本那些類作爲靜態類,那些類需要導出,那些委託需要導出,我們需要輸出的lua 類型也需要在 這裏進行一個導出。在 tolua 中已經爲我們提供了大部分的 Unity 類型,如果說我們需要導入自己的類型,或者說 tolua 沒有的類型的時候,那我們就在其中進行一個添加就行了
在這裏插入圖片描述
這個 Lua 文件夾中存放的就是我們的 lua 腳本
在這裏插入圖片描述
然後就是我們 的ToLua 文件夾下邊的 Soure 文件夾下邊兒的 LuaConst.cs 文件:存放的是 lua 路徑以及一些配置文件。
Generate 就是一系列的 Lua 文件:主要是生成交互的綁定代碼,我們項目中的 C# 和 Lua 交互主要是靠這個文件夾來進行。
在這裏插入圖片描述
然後就是一些 tolua 的實例代碼,可以利用它進行學習
在這裏插入圖片描述
--------------項目開發步驟----------
這邊我是寫在 Tolua 下邊兒的 Examples 文件夾中,也就是說相當是個實例 項目
首先的話創建一個空的場景:
在這裏插入圖片描述
只放一個空的 GameRoot 即可。
在這裏插入圖片描述
腳本代碼中編寫:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class TrueProject : MonoBehaviour {
    
    public static string ShowText()
    {
        return "this is China WuHan Developer true\n"+ "球球交流羣 :1067304356";
    }
}

這裏我們的目的就是想 在 Unity 中讓 lua 腳本調用這裏的 Csharp腳本,從而輸出字符串
緊接着:我們打開這個腳本
在這裏插入圖片描述
然後在 CustomSettings .cs 文件中添加上我們剛剛創建的 C# 腳本,後邊兒有一個逗號,別忘了
在這裏插入圖片描述
然後回到我們的 Unity 界面。
在這裏插入圖片描述
這一步操作就是清空 wrok 文件,然後 Lua 就會重新生成一份新的文件出來。
在這裏插入圖片描述
直接 Next (確定)下一步即可
在這裏插入圖片描述
然後就可以看到這樣的一個 cs 文件了。這個也就是剛剛我們寫的那個 測試案例代碼了,用於和 lua 進行交互的。
在這裏插入圖片描述
打開以後是這樣的。可以看一下里邊兒的一些方法和內容
至此我們的 csharp 文件差不多創建好了,然後創建一些 lua 文件。因爲我們的 lua 文件沒辦法直接進行創建,所以我們需要打開文件夾,新建一個 txt,然後 將後綴改爲 .lua ,不知道怎麼該的我也貼在下面了。

在這裏插入圖片描述
創建完成了以後就是這樣的
在這裏插入圖片描述
這裏我使用的是 vsCode 編輯器 建議跟博主保持一致
現在就需要跟剛剛創建出來的 Csharp 代碼進行一個交互了
在這裏插入圖片描述
這樣的話就完成了 lua 腳本的創建了 OK 我知道,但是溫馨提示,抄的時候別抄錯了
程序猿 == 懶
Lua 腳本

--定義一句局部變量
local h = TrueProject.ShowText()
--輸出 csharp 中的 字符串兒
print(h)

然後回到我們的 Unity 編輯器這邊兒再來創建一個 新的腳本叫做 :GameRoot(遊戲啓動器)

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
//引入命名空間
using LuaInterface;

public class GameRoot : MonoBehaviour {
    //不要一開始就 new , 先將資源進行一個釋放
    private LuaState lua = null;
	void Start () {
        //自定義加載器,加載 lua
        new LuaResLoader();
        //初始化虛擬機
        lua = new LuaState();
        //開啓虛擬機
        lua.Start();
        //註冊類
        LuaBinder.Bind(lua);
        //打開 lua 文件
        lua.DoFile("TruePro.lua");
	}
}

然後將我們的 GameRoot 腳本拖動到我們的 GameRoot 遊戲對象身上
到了這裏我們 就完成了 在 Unity 中使用 lua 調用 csharp 中的字符串了。
可想而知:結果完美運行
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章