- ToLua的Example示例学习笔记10_Enum
- ToLua的Example示例学习笔记_总集篇
- ToLua的Example示例学习笔记03_CallLuaFun
- ToLua的Example示例学习笔记13_CustomLoad
- ToLua的Example示例学习笔记22_UseList
- ToLua的Example示例学习笔记11_Delegate
- ToLua的Example示例学习笔记02_ScriptsFro
- ToLua的Example示例学习笔记05_LuaCorouti
- ToLua的Example示例学习笔记04_AccessingL
- ToLua的Example示例学习笔记09_Dictionary
展示了Lua对C#中的Enum对象的几种基本访问方法。
「1」代码
操作代码如下:
space = nil
function TestEnum(e)
print('Enum is:'..tostring(e))
if space:ToInt() == 0 then
print('enum ToInt() is ok')
end
if not space:Equals(0) then
print('enum compare int is ok')
end
if space == e then
print('enum compare enum is ok')
end
local s = UnityEngine.Space.IntToEnum(0)
if space == s then
print('IntToEnum change type is ok')
end
end
function ChangeLightType(light, type)
print('change light type to '..tostring(type))
light.type = type
end
c#代码如下:
new LuaResLoader();
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;
if (GUI.Button(new Rect(0, 60, 120, 50), "ChangeType"))
{
GameObject go = GameObject.Find("/Light");
Light light = go.GetComponent<Light>();
LuaFunction func = state.GetFunction("ChangeLightType");
func.BeginPCall();
func.Push(light);
LightType type = (LightType)(count++ % 4);
func.Push(type);
func.PCall();
func.EndPCall();
func.Dispose();
}
「2」需要了解的部分
- 主要的方法如下:
tostring(枚举变量)
可以输出该枚举变量的变量名
枚举变量:ToInt()
可以将枚举变量转化为对应的number类型
枚举类型.IntToEnum()
可以将整数转化为对应的枚举变量
枚举变量:Equals(整数)
可以实现整数与枚举变量的比较
2个枚举变量之间可以直接使用 == 来判断是否相等
并可以直接赋值
分为2种:
1: 枚举变量 == 枚举变量
2: 枚举变量 == 枚举类型.枚举值
最后改变灯光类型function ChangeLightType(light, type)
,可以让Cube忽明忽暗
网友评论