多选枚举(位枚举)

用途:用来实现多选枚举
核心:1,通过位运算来实现,
与&:得到二进制的交集(只要有0就是0,全1都是1)(0&0 = 0,1&1 = 1,0&1 = 0)
或|:得到二进制的并集(只要有1就是1,全0都是0)(0&0 = 0,1&1 = 1,0&1 = 1)
非’~’:对二进制取反(~0 = 1,~1=0)
异或^:二进制的差集(相同为零,不同为1)(0^1 = 1,1^0=1,0^0=0,1^1=0)
2,给每个枚举项定义一个2的n次方的int值对应
3,选中跟枚举对象按位或|运算
4,取消选中的项先按位取反在和枚举对象按位与运算
5,查看选中的有哪些,通过System.Enum遍历这个枚举,在依此和枚举项按位与(&) 在和枚举项对比,如果相等,则代表选中这个
6,如果想要给Inspector面板实现多选的枚举,在枚举上加上特性[System.Flags]

猜你喜欢

转载自blog.csdn.net/weixin_44806700/article/details/120312607
今日推荐