调用枚举类型
CallCSEnum.lua.txt
local callEnum = CS.UnityEngine.Object.FindObjectOfType(typeof(CS.shenjun.CallEnum))
callEnum:EnemyAttack(callEnum.myType)
--直接访问枚举
local boss = CS.shenjun.EnemyType.Boss
print("===========", boss) -- Boss : 1
callEnum:EnemyAttack(2)
--把字符串转换成枚举
local npc = CS.shenjun.EnemyType.__CastFrom('NPC')
print("===========", npc)
callEnum:EnemyAttack(npc)
--把数字转换成枚举
local mon = CS.shenjun.EnemyType.__CastFrom(0)
print("===========", mon)
callEnum:EnemyAttack(mon)
CallCSEnum.cs
/*
* created by shenjun
*/
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using XLua;
namespace shenjun
{
public class CallEnum : MonoBehaviour {
public EnemyType myType = EnemyType.Boss;
void Start () {
LuaEnv luaEnv = new LuaEnv();
luaEnv.DoString("require 'CallCSEnum'");
luaEnv.Dispose();
}
void Update () {
}
public void EnemyAttack(EnemyType type)
{
Debug.Log("EnemyType : " + type);
}
}
[LuaCallCSharp]
public enum EnemyType
{
Monster,
Boss,
NPC,
}
}
🔚