2017-05-30 21 views
0

私は基本的な宇宙飛行士のゲームの構築に取り組んでいますが、トリガコライダーに問題があります。Unityで速く動くゲームオブジェクトのための衝突検出

ゲームには、カプセルトリガーコライダーが付いたBulletプレハブがあります。敵は、ボックスコライダーが付いた基本キューブです。

私はゲームを実行するときに私は弾丸を撮影し、敵の立方体は数ショット後まで消えることはありません。ここで

は弾丸のプレハブのための私のコードです:

void OnTriggerEnter(Collider col) { 
     if (col.tag == "Enemy") { 
      Destroy (col.gameObject); 
     } 
    } 

そして、それぞれのゲームオブジェクトの私の属性のスクリーンショット:

弾丸プレハブ:

Bullet Prefab

そして、ここれます敵キューブ:

ここ

は何が起こっているかのビデオへのリンクです...

https://youtu.be/NjHK6oVP0OQ

+1

[衝突者同士の衝突を防ぐ方法](https://stackoverflow.com/questions/9688237/how-to-prevent-colliders-from-passing-through-each-other) – Serlite

答えて

1

私はこの質問はコメントで掲示1と同様であることができることを理解ししかし私は、その別の解決策を見つけましたこの正確な問題を抱えている人には、ある程度役に立つかもしれません。

私の「Bullet」プレハブが非常に速く動いているため、衝突を検出できなかったため、エラーが発生していました。

修正:それは高速で動いているので、私は連続ダイナミックに剛体弾丸プレハブの衝突検出のプロパティを変更し。リジッドボディの衝突検出モードへの完全な言及は以下のリンクです。

enter image description here

https://docs.unity3d.com/ScriptReference/Rigidbody-collisionDetectionMode.html

このコメントに投稿された「類似」という質問の答えとの違いは、その答えは、どのようなIのより多くのである(非常にシンプルなコライダー対レイキャスティングでやるべきことがたくさん持っています探していた)。

+0

間違いなくこれを処理する有効なエンジン内の方法ですが、このモードでも高速で小さなオブジェクトの衝突を逃すことがあることに注意する価値があります。それはあなたのために働く場合、素晴らしい!差し迫った衝突を手動で検出するよりも簡単な解決策です。 – Serlite

関連する問題