定义 使用Unity自带的[Flags]标签即可 在要实现复选功能的枚举类上使用[Flags]标签 [Flags] publicenumSystemType { Player =1<<0,// 玩家 Equipment =1<<1,// 装备 Enemy =1<<2,// 敌人 Costume =1<<3,// 皮肤/服饰 Skill =1<<4,// 技能 Pet =1<<5,// 宠物
位标记与Flags特性结合枚举中的使用小记 enum在应用中往往用来标记一些我们需要的类似开关功能的效果,enum默认的初始化值是根据以下形式赋值的。如下图: 图-1 而且在是用enum来标记位时往往用十六进制而不是十进制,因为十进制的相关性要比十六进制强很多。早在C#4.0以前,要确定一个特定的位是否被设置,是对标志字...
[Flags] enum Styles{ ShowBorder = 1, //是否显示边框ShowCaption = 2, //是否显示标题ShowToolbox = 4 //是否显示工具箱} 这样我们就可以用"或"运算符组合多个状态,例如: myControl.Style = Styles.ShowBorder | Styles.ShowCaption; 这时myControl.Style枚举的值将变成 1+2=3,它的ToString()将变成"St...
[EnumFlags] public BigTypes bigType; //这样就实现了吗?现在我们的定义枚举在Inspector面板上还是不能够多选的, //这个时候我们还需要再拓展一下Unity面板 } //拓展Unity 面板,使其支持多选枚举 [CustomEditor(typeof(SpecialEnum))] public class BigEnumEditor:Editor ...
(IntPtr hWnd,IntPtr hWndInsertAfter,intX,intY,int cx,int cy,uint uFlags);staticreadonly IntPtrHWND_TOPMOST=newIntPtr(-1);constUInt32SWP_NOSIZE=0x0001;constUInt32SWP_NOMOVE=0x0002;IntPtr hWnd;//public float Wait = 0;//延迟执行//public float Rate = 1;//更新频率publicbool KeepForeground...
12345678[System.Flags]public enum StatusEffect{ None = 1, Poison = 2, Slow = 4, Mute = 8} 通过如此,我们告知编译器将此枚举看做是位标记,表示每个不同的枚举值代表一个不同的位。这意味着我们必须通过给它们用2的幂来赋值,以此告知每个枚举值。另一种就是通过获取两个值的幂,然后通过移位来实现: ...
// 使用Flags属性指示可以进行位运算[System.Flags]publicenumSeasons{None=0,Spring=1,Summer=2,Autumn=4,Winter=8}// 声明一个枚举类型的变量publicSeasonscurrentSeasons; 可以得到这样的效果: 使用位与运算符判断枚举对象的开关状态 那么需要读取和判断开关状态的时候,我们该怎么做呢?
[System.Flags] public enum StatusEffect { None = 1, Poison = 2, Slow = 4, Mute = 8 } 通过如此,我们告知编译器将此枚举看做是位标记,表示每个不同的枚举值代表一个不同的位。这意味着我们必须通过给它们用2的幂来赋值,以此告知每个枚举值。另一种就是通过获取两个值的幂,然后通过移位来实现: ...
定义枚举时,使用[Flags]特性修饰(增强代码可读性,标记可多选) 判断标志枚举是否包含指定枚举值 使用运算符**&**(按位与) 00000011 & 00000001 ==》00000001 数据类型转换 //int ==> Enum PersonStyle style01 = (PersonStyle)2; //Enum ==> int ...
EnumFlagsField使用默认值构造一个 EnumFlagsField,并初始化其基础类型。 公共函数 Init使用默认值初始化 EnumFlagsField,并初始化其基础类型。 静态变量 inputUssClassName此类型元素中输入元素的 USS 类名称。 labelDraggerVariantUssClassName当附加有拖动器时,此类型元素的标签的 USS 类名称。