当前位置: 首页>>代码示例>>C#>>正文


C# LuaState.CheckTop方法代码示例

本文整理汇总了C#中LuaState.CheckTop方法的典型用法代码示例。如果您正苦于以下问题:C# LuaState.CheckTop方法的具体用法?C# LuaState.CheckTop怎么用?C# LuaState.CheckTop使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在LuaState的用法示例。


在下文中一共展示了LuaState.CheckTop方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Start

    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();
    }
开发者ID:Xiaogang310,项目名称:LuaFramework_NGUI,代码行数:30,代码来源:AccessingArray.cs

示例2: Start

	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;
	}	
开发者ID:zlanr,项目名称:tolua,代码行数:26,代码来源:TestInt64.cs

示例3: Start

	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;
	}
开发者ID:RuYi51,项目名称:LuaFramework_NGUI,代码行数:32,代码来源:AccessingEnum.cs

示例4: Start

    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();
    }
开发者ID:RuYi51,项目名称:LuaFramework_NGUI,代码行数:28,代码来源:AccessingArray.cs

示例5: Start

    //实际应用如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;
    }
开发者ID:tkial,项目名称:tolua,代码行数:32,代码来源:TestProtoBuffer.cs

示例6: Awake

    void Awake()
    {
        LuaState lua = new LuaState();
        lua.Start();
        string hello = @"print('hello tolua#')";

        lua.DoString(hello, "HelloWorld.cs");
        lua.CheckTop();
        lua.Dispose();
        lua = null;
    }
开发者ID:zhangxiangsong,项目名称:some_work,代码行数:11,代码来源:HelloWorld.cs

示例7: Start

	void Start () 
    {        
        LuaState lua = new LuaState();
        string hello =
            @"                
                print('hello tolua, 广告招租')                
            ";

        lua.DoString(hello, "hello");
        lua.CheckTop();
        lua.Dispose();
	}
开发者ID:benbon,项目名称:tolua,代码行数:12,代码来源:HelloWorld.cs

示例8: Start

	void Start () 
    {        
        LuaState lua = new LuaState();
        lua["Objs2Spawn"] = 5;
        lua.DoString(script);

        Debugger.Log("Read var from lua: {0}", lua["var2read"]);
        Debugger.Log("Read table var from lua: {0}", lua["Layers.default"]);

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

        func.Dispose();
        lua.CheckTop();
        lua.Dispose();
	}
开发者ID:benbon,项目名称:tolua,代码行数:16,代码来源:AccessingLuaVariables.cs

示例9: Start

    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();
    }
开发者ID:youxibuhaowana,项目名称:01ulua,代码行数:45,代码来源:AccessingLuaVariables.cs

示例10: Start

	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();
	}
开发者ID:benbon,项目名称:tolua,代码行数:22,代码来源:CallLuaFunction.cs

示例11: Awake

    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;
    }
开发者ID:RuYi51,项目名称:LuaFramework_NGUI,代码行数:23,代码来源:UseDictionary.cs

示例12: Start

	void Start () 
    {
        LuaState lua = new LuaState();
        lua.Start();
        lua.DoString(script);

        long x  = 123456789123456789;
        double low = (double)(x & 0xFFFFFFFF);
        double high = (double)(x >> 32);
        Debugger.Log("number x low is {0}, high is {1}", low, high);

        LuaFunction func = lua.GetFunction("TestInt64");
        func.BeginPCall();
        func.PushInt64(123456789123456000);
        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();        
	}	
开发者ID:benbon,项目名称:tolua,代码行数:24,代码来源:TestInt64.cs

示例13: Start

    //实际应用如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()
    {
        Application.RegisterLogCallback(ShowTips);  
        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;
    }
开发者ID:benbon,项目名称:tolua,代码行数:28,代码来源:TestProtoBuffer.cs

示例14: Start

    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;
    }
开发者ID:woshihuo12,项目名称:UnityHello,代码行数:28,代码来源:TestInherit.cs

示例15: Start

    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();
    }
开发者ID:RuYi51,项目名称:LuaFramework_NGUI,代码行数:29,代码来源:CallLuaFunction.cs


注:本文中的LuaState.CheckTop方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。