一、Lua文件載入 1).Resources載入xluaTest文件 2).通過loader載入 3).自定義Loader(相當於Resources載入和loader載入結合) 先自定義Loader,再載入 二、C#訪問Lua 1).獲取一個全局基本數據類型 2).訪問一個全局的table ①映射到 ...
一、Lua文件載入
1).Resources載入xluaTest文件
2).通過loader載入
3).自定義Loader(相當於Resources載入和loader載入結合)
先自定義Loader,再載入
二、C#訪問Lua
1).獲取一個全局基本數據類型
2).訪問一個全局的table
①映射到普通class或struct
②映射到一個interface
先建立一個介面(介面需引用"CSharpCallLua")(相當於一個類),再映射
③映射到Dictionary<>
④映射到List<>
⑤映射到LuaTable類
3).訪問一個全局的function
①C#訪問lua方法 無參
②C#訪問lua方法 有參
Lua中AddFunc方法
先定義參數(引用"CSharpCallLua")(相當於一個類),再執行方法操作
輸出結果:(在unity中)
Lua:15;
15;
三、C#調用Lua
Lua中AddFunc方法
C#調用lua方法 使用LuaFunction
輸出結果為:(在unity中)
24;
-22
四、Lua調用C#
1).new C#對象
① 普通
C#: var newGameObj = new UnityEngine.GameObject();
Lua: local newGameObj = CS.UnityEngine.GameObject()
② 含參構造
Lua: local newGameObj2 = CS.UnityEngine.GameObject('helloworld')
2).訪問C#中靜態的屬性 (調用用".")
Lua: print(CS.UnityEngine.Time.deltaTime)
3).訪問C#中靜態的方法 (調用用".")
Lua: local cameraGo = CS.UnityEngine.GameObject.Find('Main Camera')
4).訪問C#中的成員方法 (調用用":")
Lua: local cameraGo = CS.UnityEngine.GameObject.Find('Main Camera')
cameraGo:SetActive(false)
5).訪問C#中的成員屬性 (調用用".")
Lua: local cameraCom = cameraGo:GetComponent("BoxCollider")
CS.UnityEngine.GameObject.Destroy(cameraCom)