using UnityEngine; using System.Collections; using LuaInterface; public class testLUACALL : MonoBehaviour { // Use this for initialization void Start () { LuaState S = new LuaState(); if (S == null) return; S.Start(); S.DoFile("test1.lua"); S.DoFile("test2.lua"); LuaFunction lf = S.GetFunction("cdata.init"); if (lf == null) { Debug.Log("lf == null------------------"); return; } LuaTable lb = S.GetTable("cdata"); lf.BeginPCall(); lf.Push(lb); lf.Push("hello"); lf.Push(10101); lf.PCall(); lf.EndPCall(); LuaFunction lf2 = S.GetFunction("ctest.initdata"); if (lf2 == null) { Debug.Log("lf2 == null-------------------"); return; } } // Update is called once per frame void Update () { } }
test1.lua
cdata = { x = 99 } function function_name( ) -- body end cdata.init = function(self, str, num ) print("------------------" .. str .. "," .. num .. "-------------------") print(self) print(cdata) print(self.x) end cdata.update = function(self ) end