質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

Q&A

解決済

2回答

1247閲覧

layer matrixからのlayer mask作成について

kszk

総合スコア13

Unity

Unityは、Unity Technologiesが開発・販売している、IDEを内蔵するゲームエンジンです。主にC#を用いたプログラミングでコンテンツの開発が可能です。

0グッド

0クリップ

投稿2018/08/15 06:29

お世話になります。
掲題の質問ですが、unityにおける、layer maskの指定ですが

直の値設定は出来たのですが、あるレイヤーに設定したcollision matrixと同じような設定になるようにコピーする機能が見当たりませんでした。
raycastやカメラの範囲を特定のレイヤー番号から反映させる方法はございますでしょうか?

ご教示の程よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

お世話になります。
ご教示いただいたapiを回して見ようと思います。
ご教示の程どうもありがとうございました

投稿2018/08/15 09:17

kszk

総合スコア13

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Bongo

2018/08/15 09:22

念のため補足しますと、Physics2Dにも同名のGetIgnoreLayerCollisionメソッドがありますので、2D衝突判定の場合はこちらを試してみてください。
kszk

2018/08/15 09:31

bongo様 重ねてのご教示の程どうもありがとうございます。 今回は3dですが、2dの折にはその事も注意致します。 丁寧で分かり易い回答、どうもありがとうございました。
guest

0

ベストアンサー

おそらく、GetIgnoreLayerCollisionで問い合わせて、自前で組み立ててやる必要があるのではないかと思います。
こんな方法でいかがでしょうか?

C#

1using System; 2using UnityEngine; 3 4public class CollisionLayerMaskGenerator : MonoBehaviour 5{ 6 public static int GetCollisionLayerMask(string layerName) 7 { 8 return GetCollisionLayerMask(LayerMask.NameToLayer(layerName)); 9 } 10 11 public static int GetCollisionLayerMask(int layerIndex) 12 { 13 var mask = ~0; 14 for (var i = 0; i < 32; i++) 15 { 16 if (Physics.GetIgnoreLayerCollision(layerIndex, i)) 17 { 18 mask &= ~(1 << i); 19 } 20 } 21 22 return mask; 23 } 24 25 private void Start() 26 { 27 // どのようなマスクが生成されるか実験 28 for (var layerIndex = 0; layerIndex < 32; layerIndex++) 29 { 30 var layerName = LayerMask.LayerToName(layerIndex); 31 if (string.IsNullOrEmpty(layerName)) 32 { 33 layerName = "Layer " + layerIndex; 34 } 35 Debug.LogFormat("{0} ({1})", Convert.ToString(GetCollisionLayerMask(layerIndex), 2), layerName); 36 } 37 } 38}

投稿2018/08/15 09:13

Bongo

総合スコア10807

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問