ビットフラグ的なことはC#ではenumでFlagsアトリビュートを設定して使用するのがベストだとは思いますが、諸事情で派生先にそのenumの定義は任せるけど、基底クラスは情報を持っている必要があるということになったので情報を符号無し整数で扱うことにしました。
そんなわけですからUnityのインスペクター上では当然、何のことやらわからない状態になったので、それを表示するアトリビュートを作りました。
CustomPropertyDrawerを使ってのエディタ拡張なので、そんなに手間はかかっていません。
手間はかかっていないのですが、覚えては忘れるを繰り返すエディタ拡張にちょっと首を傾げてたりする時間が長かったです。
ただの表示じゃなくて、16進数を入力できるようにもしました(エラーチェックはTryParse頼み)
下位上位の並びがー とかビットの並ぶ方向がー
とか、お気に召さないところがあるようでしたら、好きに改造してください。
アトリビュートに食わせるときに設定するフラグを追加して拡張したりしたらフィードバックしてくれると嬉しいです。
単純に16進数を表示してくれる整数フィールドで要件は事足りてたんじゃないかという気もしましたが、きっと気のせいです。
ファイル関係はgistにあげておきました。
以下のツイートを参考にしてください。
もうどこかの誰かが作っているかも知れない何番煎じかわからないけど、見当たらなかったからちまちま作った。
— 鈴森れいや (@leiyasuzumori) 2018年1月11日
enumでビットフラグを扱うのが普通だろうけど、そうじゃなくてただただビットを見たり編集したい時にどうぞ。https://t.co/qWQdTHZI2r pic.twitter.com/8UVdklltbK
(こんな機能は前にも見かけたような気がしてるんだけどなぁ)