本文整理汇总了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();
}
示例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;
}
示例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;
}
示例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();
}
示例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;
}
示例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;
}
示例7: Start
void Start ()
{
LuaState lua = new LuaState();
string hello =
@"
print('hello tolua, 广告招租')
";
lua.DoString(hello, "hello");
lua.CheckTop();
lua.Dispose();
}
示例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();
}
示例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();
}
示例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();
}
示例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;
}
示例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();
}
示例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;
}
示例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;
}
示例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();
}