在Lua中有以下五种方法可以访问到枚举变量:
当作普通的静态属性访问
使用__CastFrom函数,从枚举值对应的数值做类型转换
使用__CastFrom函数,从枚举值对应的字符串做类型转换
直接传入枚举值对应的数值
直接传入枚举值对应的字符串
官方文档上只提到了前三种方法,并且方法2和方法3需要生成代码才能使用,不过经过实验发现,不生成代码时上述五种方法都能够使用
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
[LuaCallCSharp]
public enum Language
{
PHP,
Charp,
Python,
C,
Java
}
[LuaCallCSharp]
public class ChooseLanguage
{
public void GetLanguage(Language lang)
{
switch (lang)
{
case Language.PHP:
Debug.Log("选择了PHP语言");
break;
case Language.Charp:
Debug.Log("选择了Charp语言");
break;
case Language.Python:
Debug.Log("选择了Python语言");
break;
case Language.C:
Debug.Log("选择了C语言");
break;