FC2ブログ
    05 «1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.» 07

    ハルシオンシステムの気ままBlog

    株式会社ハルシオンシステムのメンバーが送る、UnityやらJavaやらの技術的話題から、自社開発のアプリの宣伝とかとかのブログです。ほんと気ままにいきたいと思います。更新日は毎週 月 木でっす!

     

    【ハルシオンブログ】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)

    tb 0 : cm 2   

    コメント

    ビットシフトでこう書いたほうがわかりやすいので好きですねー
    [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]

    コメントの投稿

    Secret

    トラックバック

    トラックバックURL
    →http://halcyonsystemblog.jp/tb.php/669-d85e4eb5
    この記事にトラックバックする(FC2ブログユーザー)