ビット演算の方法(というか記号)を忘れがちなのでメモ。
ビット演算?
そもそもビット演算とは?という話は既に素晴らしい記事があるのでリンクで済ませます。
ビット演算の使い方
ビット演算は下記のように使います。
using System.Collections; using UnityEngine; public class BitExample : MonoBehaviour { // ビット演算に使う場合にはSystem.Flagsアトリビュートをつける [System.Flags] public enum Example { // 1を立てるビットを一つずつずらしながら定義する Element0 = 1 << 0, Element1 = 1 << 1, Element2 = 1 << 2, Element3 = 1 << 3, Element4 = 1 << 4, } public void Awake() { var example = (Example)0; // ビットを立てる example |= Example.Element1; Debug.Log(example); // Element1 // ビットを複数立てる example |= (Example.Element1 | Example.Element3); Debug.Log(example); // Element1, Element3 // ビットを消す example &= ~Example.Element1; Debug.Log(example); // Element3 // 判定方法: HasFlagsを使わない場合 { // ビットが立っているか Debug.Log((example & Example.Element3) == Example.Element3); // true // ビットが全て立っているか Debug.Log((example & (Example.Element2 | Example.Element3)) == (Example.Element2 | Example.Element3)); // false // ビットがいずれか立っているか Debug.Log((example & (Example.Element2 | Example.Element3)) != 0); // true } // リセット example = 0; } }