C#如何訪問Lua中的屬性(1)
阿新 • • 發佈:2019-02-18
參考 http://www.myexception.cn/c-sharp/1881698.html
-
C#如何訪問Lua中的屬性
1) .C#如何訪問LUA中的屬性?
2) .C#如何訪問LUA中的函式?
3) .C#如何訪問LUA中的表?
第一個檔案 test0.txt 檔案放在
lua語言
--[[ @author:濤濤 @des:測試C#訪問LUA的一些東東 @date:2016-8-17 --]] config={name="taotao", age=24,qq="55555555"} Name="ahui"; Age=24; isBoy=true; function PrintFromLua(a) print("列印資訊。我來Lua...cs傳的引數的值", a); return 200; end; print("test0.lua執行完畢..");
Main.cs檔案隨便掛在一個物件上測試
/* C#如何訪問Lua中的屬性 1) .C#如何訪問LUA中的屬性? 2) .C#如何訪問LUA中的函式? 3) .C#如何訪問LUA中的表? */ using UnityEngine; using System.Collections; // using LuaInterface; public class Main : MonoBehaviour { private static Main instance; public string ss; public TextAsset tt; // Use this for initialization void Start () { instance = this; } // Update is called once per frame void Update() { } //C#呼叫LUA void testCSharp_GoLua() { LuaState lua = new LuaState(); lua.DoString("print'hello world'"); } //C#呼叫LUAFile void testCSharp_GoLuaFile() { LuaState lua = new LuaState(); //lua.DoFileFromAge(this, "Test0.lua"); //TextAsset file = (TextAsset)Resources.Load("test0", typeof(TextAsset)); //if (file == null) //{ // Debug.Log("sdfds"); //} //else { // Debug.Log("載入成功"); //} lua.DoFile("test0"); } void testCSharp_GoLuaInfor() { LuaState lua = new LuaState(); lua.DoFile("test0"); // 訪問LUA中的表 LuaTable configTable = lua.GetTable("config"); Debug.Log("name:" + configTable["name"]); Debug.Log("age:" + configTable["age"]); Debug.Log("qq:" + configTable["qq"]); // 訪問Lua 中的基礎屬性 Debug.Log("Name:" + lua.GetString("Name")); Debug.Log("Age" + lua.GetNumber("Age")); Debug.Log("isBoy" + lua["isBoy"]); //訪問Lua中的函式 LuaFunction luaFun = lua.GetFunction("PrintFromLua"); if (luaFun != null) { System.Object[] obResult = luaFun.Call(100); Debug.Log("obResult" + obResult[0]); } } void OnGUI() { if (GUILayout.Button("第一節.C#呼叫LUA")) { testCSharp_GoLua(); } if (GUILayout.Button("第二節.C#呼叫LUA File")) { testCSharp_GoLuaFile(); } if (GUILayout.Button("第三節.C#呼叫LUA 資訊")) { testCSharp_GoLuaInfor(); } } }