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

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

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

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

Q&A

解決済

1回答

8473閲覧

Unity RayCastの当たり判定を数秒間なくす

DiG5219

総合スコア26

Unity3D

Unity3Dは、ゲームや対話式の3Dアプリケーション、トレーニングシュミレーション、そして医学的・建築学的な技術を可視化する、商業用の開発プラットフォームです。

Unity

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

0グッド

0クリップ

投稿2016/05/09 12:34

unityでランダムに自動生成されたオブジェクトの当たり判定について行き詰ったので質問させていただきます。

void BlockCreate()
{
GameObject blocks = prefabs[Random.Range(0, prefabs.Length)];
Instantiate(blocks, new Vector3(0, 20, 0), Quaternion.identity);

このメソッドでブロックを自動生成して

if (Input.GetMouseButton(0))
{
Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);
RaycastHit hit;
if (Physics.Raycast(ray, out hit, Mathf.Infinity))
{

var targetPos = new Vector3(hit.point.x, transform.position.y, hit.point.z);

この別のクラスのメソッドでブロックをRayCastが当たった位置に移動させています。

ブロックは自動生成され、重力にしたがって落下してきます。
しかし、生成されたブロックをクリックしてしまうと、変な位置に移動してしまい、
ゲームとして成り立たなくなってしまいました。

そこで、自動生成されたブロックは自動生成されてからの2.8秒間だけ、
RayCastには当たらないようにしたいです。

if (timer < 2.8f)
{
GetComponent<BoxCollider>().enabled = false;

上記のif文をRayCastを飛ばしているメソッドの中に加えて実行してみたところ、
ブロックに対して、RayCastは当たらなくなりました。

しかし、今制作中のゲームにはそのほかにブロックが積まれていくフロアーと
すでに落下しているブロックがあります。
それらにはRayCastが当たるようにしたいのですが、上記のif文を加えたところ、
ブロックはフロアーをすり抜けてしまいました。

ですので、生成されてからの2.8秒間、生成されたブロックはRayCastにのみ当たり判定をなくしたいです。

ご教授よろしくお願いします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

Raycastには、対象となる(Rayが当たる)レイヤーを指定することができるようになっています。
なので、自動生成されて落下中はレイヤーを変えておき、地面に設置したタイミングでレイヤーを元に戻してやれば地面設置まではRaycastを無視するようにすることができると思います。

これの引数の layerMask がそれですね↓
http://docs.unity3d.com/ja/current/ScriptReference/Physics.Raycast.html

投稿2016/05/09 16:36

edo_m18

総合スコア2283

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

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

DiG5219

2016/05/10 15:53

考えていた通りに動きました!毎回回答していただきありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問