TestXLua.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. public class TestXLua : MonoBehaviour {
  5. public TextAsset luaText;
  6. [XLua.CSharpCallLua]
  7. public delegate int LuaFuncBDelegate(int a, int b);
  8. [XLua.CSharpCallLua]
  9. public delegate int LuaFuncCDelegate(int a, int b, int c, out int ret);
  10. // Use this for initialization
  11. void Start () {
  12. XLua.LuaEnv luaState = new XLua.LuaEnv();
  13. luaState.DoString("CS.UnityEngine.Debug.Log('Hello XLua.')");
  14. luaState.DoString(luaText.text);
  15. int nLuaNum1 = luaState.Global.Get<int>("nNum1");
  16. Debug.Log("nLuaNum1 -> " + nLuaNum1);
  17. string strLuaString = luaState.Global.GetInPath<string>("tValueTable.strString");
  18. Debug.Log("strLuaString -> " + strLuaString);
  19. //luaState.Global.SetInPath<int>("tValueTable.nInt", 999);
  20. Debug.Log("---------------------------------------------------------");
  21. System.Action luaFuncA = luaState.Global.Get<System.Action>("FuncA");
  22. luaFuncA();
  23. luaFuncA = null;
  24. Debug.Log("---------------------------------------------------------");
  25. LuaFuncBDelegate luaFuncB = luaState.Global.Get<LuaFuncBDelegate>("FuncB");
  26. Debug.Log("luaFuncB Result -> " + luaFuncB(11, 22));
  27. luaFuncB = null;
  28. Debug.Log("---------------------------------------------------------");
  29. LuaFuncCDelegate luaFuncC = luaState.Global.Get<LuaFuncCDelegate>("FuncC");
  30. int ret = 0;
  31. int result = 0;
  32. result = luaFuncC(11, 22, 33, out ret);
  33. Debug.Log("luaFuncC result -> " + result + " ret -> " + ret);
  34. luaFuncC = null;
  35. Debug.Log("---------------------------------------------------------");
  36. luaState.Dispose();
  37. }
  38. // Update is called once per frame
  39. void Update () {
  40. }
  41. }