Start() public method

public Start ( ) : void
return void
コード例 #1
0
    void Start()
    {
        LuaState lua = new LuaState();
        lua.Start();
        lua.DoString(script);

        string[] strs = { "aaa", "bbb", "ccc" };
        LuaFunction func = lua.GetFunction("TestArray");

        func.BeginPCall();
        func.Push(strs);
        func.PCall();
        double arg1 = func.CheckNumber();
        string arg2 = func.CheckString();
        bool arg3 = func.CheckBoolean();
        Debugger.Log("return is {0} {1} {2}", arg1, arg2, arg3);
        func.EndPCall();

        //转换一下类型,避免可变参数拆成多个参数传递
        object[] objs = func.Call((object)strs);

        if (objs != null)
        {
            Debugger.Log("return is {0} {1} {2}", objs[0], objs[1], objs[2]);
        }

        lua.CheckTop();
        func.Dispose();
        lua.Dispose();
    }
コード例 #2
0
	void Start () 
    {
        LuaState state = new LuaState();
        state.Start();
        LuaBinder.Bind(state);

        state.DoString(script);
        state["space"] = Space.World;

        LuaFunction func = state.GetFunction("TestEnum");
        func.BeginPCall();
        func.Push(Space.World);
        func.PCall();
        func.EndPCall();
        func.Dispose();
        func = null;

        GameObject go = GameObject.Find("/Light");
        Light light = go.GetComponent<Light>();
        func = state.GetFunction("ChangeLightType");
        func.BeginPCall();
        func.Push(light);
        func.Push(LightType.Directional);
        func.PCall();
        func.EndPCall();
        func.Dispose();
        func = null;
 
        state.CheckTop();
        state.Dispose();
        state = null;
	}
コード例 #3
0
ファイル: LuaMain.cs プロジェクト: liangxiegame/QFramework
		//初始化
		private void init()
		{
//			if (mLuaState != null) {
//				mLuaState.Dispose ();
//			}
			#if UNITY_EDITOR
				LuaFileUtils.Instance.beZip = UseAssetBundleLuaInEditor;
			#else
				LuaFileUtils.Instance.beZip = true;
			#endif
			mLuaState = new LuaState();
			mLuaState.LogGC = false;
			mLuaState.Start();
			LuaBinder.Bind(mLuaState);
			mLuaState.DoFile(LuaFileUtils.Instance.beZip?LuaEnterFile:LuaEnterDebugFile);

			//协程
			luaCoroutine = GameObject.Find ("LuaCoroutine");
			if (luaCoroutine == null) {
				luaCoroutine = new GameObject ();
				luaCoroutine.gameObject.name = "LuaCoroutine";
				luaCoroutine.AddComponent<LuaCoroutineComponent> ();
				UnityEngine.Object.DontDestroyOnLoad(luaCoroutine);
			}
			LuaCoroutine.Register(mLuaState, luaCoroutine.GetComponent<LuaCoroutineComponent>());

			addFunc(FuncName.createLuaFile);

		}
コード例 #4
0
ファイル: TestInherit.cs プロジェクト: woshihuo12/UnityHello
    void Start()
    {
        lua = new LuaState();
        lua.Start();
        LuaBinder.Bind(lua);
        lua.DoString(script, "TestInherit.cs");

        float time = Time.realtimeSinceStartup;

        for (int i = 0; i < 200000; i++)
        {
            Vector3 v = transform.position;
            transform.position = v;
        }

        time = Time.realtimeSinceStartup - time;
        Debugger.Log("c# Transform get set cost time: " + time);

        LuaFunction func = lua.GetFunction("Test");
        func.BeginPCall();
        func.Push(transform);
        func.PCall();
        func.EndPCall();

        lua.CheckTop();
        lua.Dispose();
        lua = null;
    }
コード例 #5
0
ファイル: TestInt64.cs プロジェクト: zlanr/tolua
	void Start () 
    {
		#if UNITY_5		
		Application.logMessageReceived += ShowTips;
		#else
		Application.RegisterLogCallback(ShowTips);           
		#endif
		new LuaResLoader();
        LuaState lua = new LuaState();
        lua.Start();
        lua.DoString(script);				                   

        LuaFunction func = lua.GetFunction("TestInt64");
        func.BeginPCall();
		func.PushInt64(9223372036854775807 - 789);
        func.PCall();
        LuaInteger64 n64 = func.CheckInteger64();
        Debugger.Log("int64 return from lua is: {0}", n64);
        func.EndPCall();
        func.Dispose();
        func = null;

        lua.CheckTop();    
		lua.Dispose();  
		lua = null;
	}	
コード例 #6
0
    void Start()
    {
        #if !TEST_GC
        #if UNITY_5
        Application.logMessageReceived += ShowTips;
        #else
        Application.RegisterLogCallback(ShowTips);
        #endif
        #endif
        lua = new LuaState();
        lua.Start();
        lua.DoString(script);

        //Get the function object
        func = lua.GetFunction("test.luaFunc");

        if (func != null)
        {
            //有gc alloc
            object[] r = func.Call(123456);
            Debugger.Log("generic call return: {0}", r[0]);

            // no gc alloc
            int num = CallFunc();
            Debugger.Log("expansion call return: {0}", num);
        }

        lua.CheckTop();
    }
コード例 #7
0
ファイル: TestProtoBuffer.cs プロジェクト: tkial/tolua
    //实际应用如Socket.Send(LuaStringBuffer buffer)函数发送协议, 在lua中调用Socket.Send(pb_data)
    //读取协议 Socket.PeekMsgPacket() {return MsgPacket}; lua 中,取协议字节流 MsgPack.data 为 LuaStringBuffer类型
    //msg = Socket.PeekMsgPacket() 
    //pb_data = msg.data    
    void Start()
    {
#if UNITY_5		
		Application.logMessageReceived += ShowTips;
#else
        Application.RegisterLogCallback(ShowTips);
#endif  
        new LuaResLoader();        
        LuaState state = new LuaState();
        state.Start();
        Bind(state);
        state.OpenLibs(LuaDLL.luaopen_pb);                   

        state.DoString(script);
        LuaFunction func = state.GetFunction("Encoder");
        func.Call();
        func.Dispose();
        func = null;

        func = state.GetFunction("Decoder");
        func.Call();
        func.Dispose();
        func = null;

        state.CheckTop();
        state.Dispose();
        state = null;
    }
コード例 #8
0
    void Start()
    {
        lua = new LuaState();
        lua.Start();
        lua.DoString(script, "AccessingArray.cs");

        int[] array = { 1, 2, 3, 4, 5};
        func = lua.GetFunction("TestArray");

        func.BeginPCall();
        func.Push(array);
        func.PCall();
        double arg1 = func.CheckNumber();
        string arg2 = func.CheckString();
        bool arg3 = func.CheckBoolean();
        Debugger.Log("return is {0} {1} {2}", arg1, arg2, arg3);
        func.EndPCall();

        //转换一下类型,避免可变参数拆成多个参数传递
        object[] objs = func.Call((object)array);

        if (objs != null)
        {
            Debugger.Log("return is {0} {1} {2}", objs[0], objs[1], objs[2]);
        }

        lua.CheckTop();
    }
コード例 #9
0
ファイル: TestGameObject.cs プロジェクト: benbon/tolua
 void Start()
 {        
     lua = new LuaState();
     lua.LogGC = true;
     lua.Start();
     LuaBinder.Bind(lua);
     lua.DoString(script);             
 }
コード例 #10
0
 void Start()
 {
     lua = new LuaState();
     lua.LogGC = true;
     lua.Start();
     LuaBinder.Bind(lua);
     lua.DoString(script, "TestGameObject.cs");
 }
コード例 #11
0
ファイル: TestOutArg.cs プロジェクト: benbon/tolua
	void Start () 
    {
        state = new LuaState();
        state.Start();
        LuaBinder.Bind(state);
        state.DoString(script);

        func = state.GetFunction("TestPick");
	}
コード例 #12
0
    void Start()
    {
        new LuaResLoader();
        state = new LuaState();
        state.Start();
        LuaBinder.Bind(state);
        state.DoString(script, "TestOutArg.cs");

        func = state.GetFunction("TestPick");
    }
コード例 #13
0
ファイル: TestPerformance.cs プロジェクト: benbon/tolua
	void Start () 
    {        
        Application.RegisterLogCallback(ShowTips);           
        new LuaResLoader();          
        state = new LuaState();
        state.Start();
        LuaBinder.Bind(state);                       
        state.DoFile("Test.lua");        
        state.LuaGC(LuaGCOptions.LUA_GCCOLLECT);      
	}
コード例 #14
0
ファイル: TestABLoader.cs プロジェクト: youxibuhaowana/01ulua
    void OnBundleLoad()
    {
        LuaState state = new LuaState();
        state.Start();

        state.DoString("print('hello world')");

        state.Dispose();
        state = null;
    }
コード例 #15
0
    void Awake()
    {
        LuaState lua = new LuaState();
        lua.Start();
        string hello = @"print('hello tolua#')";

        lua.DoString(hello, "HelloWorld.cs");
        lua.CheckTop();
        lua.Dispose();
        lua = null;
    }
コード例 #16
0
ファイル: TestCoroutine2.cs プロジェクト: benbon/tolua
	void Awake () 
    {
        luaState = new LuaState();
        luaState.Start();
        LuaBinder.Bind(luaState);
        LuaCoroutine.Register(luaState, this);

        luaState.DoString(script);
        LuaFunction func = luaState.GetFunction("TestCo");
        func.Call();
        func.Dispose();
	}
コード例 #17
0
ファイル: ScriptsFromFile.cs プロジェクト: benbon/tolua
	void Start () 
    {        
        LuaState lua = new LuaState();
        lua.Start();        
        
        string fullPath = Application.dataPath + "/ToLua/Examples/02_ScriptsFromFile";
        lua.AddSearchPath(fullPath);         
        lua.DoFile("ScriptsFromFile.lua");        
        //lua.DoString("require 'ScriptsFromFile'");                             
        //lua.Require("ScriptsFromFile");                

        lua.Dispose();
	}
コード例 #18
0
 void Start()
 {
     #if UNITY_5
     Application.logMessageReceived += Log;
     #else
     Application.RegisterLogCallback(Log);
     #endif
     lua = new LuaState();
     lua.Start();
     //如果移动了ToLua目录,自己手动修复吧,只是例子就不做配置了
     string fullPath = Application.dataPath + "\\ToLua/Examples/02_ScriptsFromFile";
     lua.AddSearchPath(fullPath);
 }
コード例 #19
0
ファイル: TestCoroutine.cs プロジェクト: benbon/tolua
	void Awake () 
    {        
        lua  = new LuaState();
        lua.Start();
        LuaBinder.Bind(lua);

        lua.DoString(luaFile.text, "LuaCoroutine.lua");
        update = lua.GetFunction("Update");
        lateupdate = lua.GetFunction("LateUpdate");
        fixedupdate = lua.GetFunction("FixedUpdate");                
        LuaFunction f = lua.GetFunction("TestCortinue");
        f.Call();
        f.Dispose();
	}
コード例 #20
0
 void Start()
 {
     #if UNITY_5
     Application.logMessageReceived += Log;
     #else
     Application.RegisterLogCallback(Log);
     #endif
     lua = new LuaState();
     lua.Start();
     //移动了ToLua路径,自己手动修复吧,只是例子就不做配置了
     Debug.Log("Application.dataPath = " + Application.dataPath);
     string fullPath = Application.dataPath + "/LuaFramework/ToLua/Examples/02_ScriptsFromFile";
     lua.AddSearchPath(fullPath);
 }
コード例 #21
0
    void Awake()
    {
        lua  = new LuaState();
        lua.Start();
        LuaBinder.Bind(lua);
        looper = gameObject.AddComponent<LuaLooper>();
        looper.luaState = lua;

        lua.DoString(luaFile.text, "TestCoroutine.cs");
        LuaFunction f = lua.GetFunction("TestCortinue");
        f.Call();
        f.Dispose();
        f = null;
    }
コード例 #22
0
ファイル: TestPerformance.cs プロジェクト: tkial/tolua
	void Start () 
    {        
#if UNITY_5		
		Application.logMessageReceived += ShowTips;
#else
        Application.RegisterLogCallback(ShowTips);
#endif         
        new LuaResLoader();          
        state = new LuaState();
        state.Start();
        LuaBinder.Bind(state);                       
        state.DoFile("Test.lua");        
        state.LuaGC(LuaGCOptions.LUA_GCCOLLECT);
        state.LogGC = true;        
	}
コード例 #23
0
ファイル: TestCustomLoader.cs プロジェクト: benbon/tolua
	void Start () 
    {        
        Application.RegisterLogCallback(Logger);
        new LuaResLoader();        
        LuaState state = new LuaState();
        state.Start();

        state.DoFile("TestLoader.lua");

        LuaFunction func = state.GetFunction("Test");        
        func.Call();
        Application.RegisterLogCallback(null);
        func.Dispose();
        state.Dispose();
	}
コード例 #24
0
ファイル: TestLuaThread.cs プロジェクト: benbon/tolua
	void Start () 
    {
        state = new LuaState();
        state.Start();
        state.DoString(script);

        LuaFunction func = state.GetFunction("Test");
        func.BeginPCall();
        func.PCall();
        thread = func.CheckLuaThread();
        func.EndPCall();
        func.Dispose();
        func = null;

        thread.Resume(10);
	}
コード例 #25
0
ファイル: LuaEnv.cs プロジェクト: wwwsosokk/FunSleep
    public static void Init(string mainScript)
    {
        if (string.IsNullOrEmpty(mainScript))
            throw new System.NullReferenceException("Can't found the main script.");

        State = new LuaState();

        // 增加搜索路径
        for (int i = 0; i < globalSearchPaths.Count; ++i)
            State.AddSearchPath(globalSearchPaths[i]);

        State.OpenLibs(LuaDLL.luaopen_pb);
        LuaBinder.Bind(State);
        State.Start();
        State.DoFile(mainScript);
    }
コード例 #26
0
ファイル: TestPerformance.cs プロジェクト: zlanr/tolua
	void Start () 
    {
        if (IntPtr.Size == 8) Debugger.Log("64 go");
        Application.RegisterLogCallback(ShowTips);           
        new LuaResLoader();          
        state = new LuaState();
        state.Start();
        LuaBinder.Bind(state);                       
        state.DoFile("Test.lua");        
        state.LuaGC(LuaGCOptions.LUA_GCCOLLECT);
        state.LogGC = true;        

        state.LuaRawGlobal("xxoo");
        string error = null;
        int n = state.CheckInteger(-1, out error);
        Debugger.Log("xxoo {0}", n);
	}
コード例 #27
0
    void Start()
    {
        LuaState lua = new LuaState();
        lua.Start();
        lua["Objs2Spawn"] = 5;
        lua.DoString(script);

        //通过LuaState访问
        Debugger.Log("Read var from lua: {0}", lua["var2read"]);
        Debugger.Log("Read table var from lua: {0}", lua["varTable.default"]);

        LuaFunction func = lua["TestFunc"] as LuaFunction;
        func.Call();
        func.Dispose();

        //cache成LuaTable进行访问
        LuaTable table = lua.GetTable("varTable");
        Debugger.Log("Read varTable from lua, default: {0} name: {1}", table["default"], table["map.name"]);
        table["map.name"] = "new";
        Debugger.Log("Modify varTable name: {0}", table["map.name"]);

        table.AddTable("newmap");
        LuaTable table1 = (LuaTable)table["newmap"];
        table1["name"] = "table1";
        Debugger.Log("varTable.newmap name: {0}", table1["name"]);
        table1.Dispose();

        table1 = table.GetMetaTable();

        if (table1 != null)
        {
            Debugger.Log("varTable metatable name: {0}", table1["name"]);
        }

        object[] list = table.ToArray();

        for (int i = 0; i < list.Length; i++)
        {
            Debugger.Log("varTable[{0}], is {1}", i, list[i]);
        }

        table.Dispose();
        lua.CheckTop();
        lua.Dispose();
    }
コード例 #28
0
ファイル: TestDelegate.cs プロジェクト: benbon/tolua
    //需要删除的转LuaFunction为委托,不需要删除的直接加或者等于即可
    void Awake()
    {               
        state = new LuaState();
        state.Start();
        LuaBinder.Bind(state);
        Bind(state);

        state.LogGC = true;
        state.DoString(script);
        GameObject go = new GameObject("TestGo");
        listener = (TestEventListener)go.AddComponent(typeof(TestEventListener));

        SetClick1 = state.GetFunction("SetClick1");
        AddClick1 = state.GetFunction("AddClick1");
        AddClick2 = state.GetFunction("AddClick2");
        RemoveClick1 = state.GetFunction("RemoveClick1");
        RemoveClick2 = state.GetFunction("RemoveClick2");
        TestOverride = state.GetFunction("TestOverride");
    }
コード例 #29
0
ファイル: CallLuaFunction.cs プロジェクト: benbon/tolua
	void Start () 
    {
        lua = new LuaState();
        lua.Start();
        lua.DoString(script);

        //Get the function object
        func = lua.GetFunction("test.luaFunc");

        if (func != null)
        {
            //有gc alloc
            object[] r = func.Call(123456);
            Debugger.Log(r[0]);

            // no gc alloc
            int num = CallFunc();
            Debugger.Log(num);
        }

        lua.CheckTop();
	}
コード例 #30
0
    void Awake()
    {
        map.Add(1, new TestAccount(2, "水水", 0));
        map.Add(2, new TestAccount(1, "王伟", 1));
        map.Add(3, new TestAccount(2, "王芳", 0));

        LuaState luaState = new LuaState();
        luaState.Start();
        BindMap(luaState);

        luaState.DoString(script);
        LuaFunction func = luaState.GetFunction("TestDict");
        func.BeginPCall();
        func.Push(map);
        func.PCall();
        func.EndPCall();

        func.Dispose();
        func = null;
        luaState.CheckTop();
        luaState.Dispose();
        luaState = null;
    }