web-dev-qa-db-ja.com

Unity3dカメラカリングマスクでレイヤーを読み取れない

Ubuntu 16.10でUnity 5.5を使用しています。特定のレイヤーセットを持つカメラカリングマスクがあります。

ただし、Unityエディターインターフェイスでは、選択したレイヤーの横にあるカリングマスクのドロップダウンにチェックが表示されません。その結果、選択したレイヤーが多すぎる場合、フィールドにはMixed ...と表示され、使用するマスクを設定したレイヤーを確認できません。

camera.cullingMaskを記録すると、理解できない奇妙な整数を取得します。カリングマスクで選択したレイヤーをプログラムで確認するにはどうすればよいですか?

4

Ubuntuでも同じ問題があり、check-mark-bugの解決策はありません。

ただし、プロパティから取得する奇妙な整数を説明しようとします。各フィールドに値が割り当てられているビットフィールドです。

Layer name       | Layer Number | Mask value
Builtin Layer 0  |            0 | 1 << 0 =     1
Builtin Layer 1  |            1 | 1 << 1 =     2
Builtin Layer 2  |            2 | 1 << 2 =     4
Builtin Layer 3  |            3 | 1 << 3 =     8
Builtin Layer 4  |            4 | 1 << 4 =    16
Builtin Layer 5  |            5 | 1 << 5 =    32
Builtin Layer 6  |            6 | 1 << 6 =    64
Builtin Layer 7  |            7 | 1 << 7 =   128
User Layer 1 / 8 |            8 | 1 << 8 =   256
User Layer 2 / 9 |            9 | 1 << 9 =   512
...

(Unityバージョンに応じて、ユーザーレイヤー名は1または8から始まるようです)

これらの値を組み合わせることができます。たとえば、Builtin Layer 5User Layer 91 << 5 | 1 << 9 = 2^5 | 2^9 = 32 | 512 = 32 + 512 = 544になります。

ドキュメントの レイヤーマスクの詳細 をお読みください。

2
Lena Schimmel