美文网首页
ToLua的Example示例学习笔记10_Enum

ToLua的Example示例学习笔记10_Enum

作者: 凌枫望星月 | 来源:发表于2020-05-11 17:09 被阅读0次

展示了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忽明忽暗

相关文章

网友评论

      本文标题:ToLua的Example示例学习笔记10_Enum

      本文链接:https://www.haomeiwen.com/subject/khzunhtx.html