参考网址:https://msdn.microsoft.com/zh-cn/library/system.enum.hasflag.aspx
使用[Flags],就是用一个int数值存储多个状态位,所有的数据在计算机里计算都会转换为二进制, 1 是 0 否。
所以枚举标志位就是根据状态依次设置值。
举例:
[Flags]
public enum FruitItems {
Strawberry = 1, //草莓
Apple = Strawberry * 2, //苹果
Blueberry = Apple * 2, //蓝莓
Cherry = Blueberry * 2, //樱桃
Grape = Cherry * 2, //葡萄
Peach = Grape *2 //桃
}
void Start() {
FruitItems myOrder = FruitItems.Apple | FruitItems.Cherry | FruitItems.Grape;
//Debug.Log("" + myOrder.HasFlag(FruitItems.Apple));
}
用物品的开头字母代表枚举,从后往前依次是:
P G C B A S
例如myOrder, A 1、C 1、G 1,所以二进制依次是 011010,转换为十进制就是26。这样一个int值就可以储存多个状态。