LoginSignup
1
1

More than 5 years have passed since last update.

符号無し32ビット整数をビット情報としてInspectorに表示する

Posted at

ビットフラグ的なことはC#ではenumでFlagsアトリビュートを設定して使用するのがベストだとは思いますが、諸事情で派生先にそのenumの定義は任せるけど、基底クラスは情報を持っている必要があるということになったので情報を符号無し整数で扱うことにしました。
そんなわけですからUnityのインスペクター上では当然、何のことやらわからない状態になったので、それを表示するアトリビュートを作りました。

BitFlagsAttributeDrawer.png

CustomPropertyDrawerを使ってのエディタ拡張なので、そんなに手間はかかっていません。
手間はかかっていないのですが、覚えては忘れるを繰り返すエディタ拡張にちょっと首を傾げてたりする時間が長かったです。
ただの表示じゃなくて、16進数を入力できるようにもしました(エラーチェックはTryParse頼み)

下位上位の並びがー とかビットの並ぶ方向がー 
とか、お気に召さないところがあるようでしたら、好きに改造してください。
アトリビュートに食わせるときに設定するフラグを追加して拡張したりしたらフィードバックしてくれると嬉しいです。

単純に16進数を表示してくれる整数フィールドで要件は事足りてたんじゃないかという気もしましたが、きっと気のせいです。

ファイル関係はgistにあげておきました。
以下のツイートを参考にしてください。


(こんな機能は前にも見かけたような気がしてるんだけどなぁ)

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1