void Start() { // Debug.Log("sdfffffffffffff"); LuaEnv luaenv = new LuaEnv(); luaenv.DoString(script); CalcNew calc_new = luaenv.Global.GetInPath <CalcNew>("Calc.New"); luaenv.Global.Set("InvokeLua", this); ICalc calc = calc_new(10000, "hi", "john"); //constructor Debug.Log("sum(*10) =" + calc.Add(1, 2)); calc.Mult = 100; Debug.Log("sum(*100)=" + calc.Add(1, 2)); int abc = luaenv.Global.GetInPath <int>("A.B.C"); Debug.Log("---------" + abc); luaenv.Global.SetInPath <int>("A.B.C", 1000); int abc1 = luaenv.Global.GetInPath <int>("A.B.C"); Debug.Log("------1---" + abc1); luaenv.Global.Set("tt", 12377); int t; luaenv.Global.Get("tt", out t); Debug.Log("---tt---" + t); luaenv.Dispose(); }
void Test(LuaEnv luaenv) { luaenv.DoString(script); CalcNew calc_new = luaenv.Global.GetInPath <CalcNew>("Calc.New"); ICalc calc = calc_new(10, "hi", "john"); //constructor Debug.Log("sum(*10) =" + calc.Add(1, 2)); calc.Mult = 100; Debug.Log("sum(*100)=" + calc.Add(1, 2)); }
// Use this for initialization void Start() { LuaEnv luaenv = new LuaEnv(); luaenv.DoString(script); CalcNew calc_new = luaenv.Global.GetInPath <CalcNew>("Calc.New"); ICalc calc = calc_new(10, 23, "hi", "john"); //constructor Debug.Log("sum(*10) =" + calc.Add(1, 2)); calc.Mult = 100; Debug.Log("sum(*100)=" + calc.Add(1, 2)); luaenv.Dispose(); }
void Test(LuaEnv luaenv) { luaenv.DoString(script); //声明代理对象,把它和lua Calc的New方法绑定,mult=mult;...=args CalcNew calc_new = luaenv.Global.GetInPath <CalcNew>("Calc.New"); //通过委托传参给New,打印“hi","john",calc_mt的元表,Mult设置为10 ICalc calc = calc_new(10, "hi", "john"); //constructor //调用元表的add方法,calc作为接口可以使用add和mult属性方法,this.Mult=10(通过元表设置) //local calc_mt,定义了Calc元表的__index,查找不到add方法,自动执行了__index Debug.Log("sum(*10) =" + calc.Add(1, 2)); //通过接口get set方法,改变元表Mult calc.Mult = 100; Debug.Log("sum(*100)=" + calc.Add(1, 2)); }
void Test(LuaEnv luaEnv) { luaEnv.DoString(luaScript.text); CalcNew calc_new = luaEnv.Global.GetInPath <CalcNew>("Calc.New"); ICalc calc = calc_new(10, "hi", "john"); Debug.Log("sum(*10) = " + calc.Add(1, 2)); calc.Mult = 100; Debug.Log("sum(*100) = " + calc.Add(1, 2)); Debug.Log("list[0]=" + calc[0]); Debug.Log("list[1]=" + calc[1]); calc.PropertyChanged += Notify; calc[1] = "dddd"; Debug.Log("List[1]=" + calc[1]); calc.PropertyChanged -= Notify; calc[1] = "eeee"; Debug.Log("List[1]=" + calc[1]); }
void Test() { XLuaEnv.DoString(script); CalcNew calc_new = XLuaEnv.gtable.GetInPath <CalcNew>("Calc.New"); ICalc calc = calc_new(10, "hi", "john"); //constructor Debug.Log("sum(*10) =" + calc.Add(1, 2)); calc.Mult = 100; Debug.Log("sum(*100)=" + calc.Add(1, 2)); Debug.Log("list[0]=" + calc[0]); Debug.Log("list[1]=" + calc[1]); calc.PropertyChanged += Notify; calc[1] = "dddd"; Debug.Log("list[1]=" + calc[1]); calc.PropertyChanged -= Notify; calc[1] = "eeee"; Debug.Log("list[1]=" + calc[1]); }