いくつかのフラグを含む変数があり、どのフラグが設定されているかを確認する方法を知っています。
私のフラグ。
[Flags]
public enum Button{
//Can't have more than 30 flags
//If an enum is added or deleted need to change for loop in method AddButton
// Exit flags
Exit = 1 << 0,
Cancel = 1 << 1,
Abort = 1 << 2,
Close = 1 << 3,
//Proced flags
Accept = 1 << 4,
Ok = 1 << 5,
Submit = 1 << 6,
//Question flags
No = 1 << 7,
Yes = 1 << 8,
//Save and load
Save = 1 << 9,
SaveAll = 1 << 10,
SaveNew = 1 << 11,
Open = 1 << 12,
Load = 1 << 12
}
そして、ここでフラグをチェックします
for (int i = 1; i <= 12; ++i) {
if((buttons & 1 << i) == 1 << i){
}
}
どうやら、この方法を使用してフラグを確認することはできません。
明確にするために、ボタンに設定されているフラグを知りたいです。
更新: Unity でゲームを作成し、Mono を使用しているため、Enum.hasFlag() を使用できません。どうやら Mono は hasFlag をまだサポートしていないようです。