【ハルシオンブログ】enumでビット演算したかった
大坂です。
しばらく天気が悪いみたいですね。
今日からお出かけが続くので雨は降らないでほしいのですが。。
さて今週もenum系のお話。
enum使用してビット演算的なことをして1個の変数に複数持たせられるようにしたかったんですよね。
まぁなんのこっちゃって話なのでこんな感じです。
[Flags]
enum TestEnum
{
Test_1 = 1,
Test_2 = 2,
Test_3 = 4,
Test_4 = 8,
Test_5 = 16,
}
private void Start()
{
TestMethod();
}
private void TestMethod()
{
TestEnum test = TestEnum.Test_1 | TestEnum.Test_4;
Debug.Log(test);
}
enumに[Flags]アトリビュートを付けて、ビットの値を持たせるところがポイントですかね。
これで変数「test」に「TestEnum.Test_1」と「TestEnum.Test_4」が入るよってお話です。
結果。

ということでこんなことがやりたい時があればご参考に。
ではまたノシ
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
追記 コメントでビットシフトのほうがわかりやすいので好きですねーとありましたので、
そちらのほうが良い方はこういう感じにするといいみたいです。
[Flags]
enum TestEnum
{
Test_1 = 1 << 0,
Test_2 = 1 << 1,
Test_3 = 1 << 2,
Test_4 = 1 << 3,
Test_5 = 1 << 4,
}
Category: 開発日記(Unity)
« 【ハルシオンブログ】Unity+Playfabのランキングについて(後半) | 【ハルシオンブログ】京都に1泊遊びにいってきたよ。Playfabを使ったランキング(前編) »
コメント
ビットシフトでこう書いたほうがわかりやすいので好きですねー
[Flags]
enum TestEnum
{
Test_1 = 1 << 0,
Test_2 = 1 << 1,
Test_3 = 1 << 2,
Test_4 = 1 << 3,
Test_5 = 1 << 4,
}
しろくろ #- | URL | 2020/01/23 10:57 [edit]
Re: タイトルなし
> ビットシフトでこう書いたほうがわかりやすいので好きですねー
> [Flags]
> enum TestEnum
> {
> Test_1 = 1 << 0,
> Test_2 = 1 << 1,
> Test_3 = 1 << 2,
> Test_4 = 1 << 3,
> Test_5 = 1 << 4,
> }
コメントありがとうございます!
確かにこの方が直感的にわかりやすそうですね。
株式会社ハルシオンシステム #- | URL | 2020/01/23 11:07 [edit]
| h o m e |