2012-03-19 8 views
3

私はメッセージレイは何かボックス衝突型加速器、およびPhysics.Raycast

を打つが、私はボックスにトリガーを取得することはありません取得するシーン

if (Physics.Raycast(mousePositionInWorld, transform.forward, 10)) 
{ 
    Debug.Log("Ray hit something"); 
} 

に一つだけの既存のボックスコライダーにレイキャストをキャストコライダー

void OnTriggerEnter(Collider other) { 
     Debug.Log("Menu hit"); 
    } 

ターゲットオブジェクトのみボックス衝突型加速器でゲームオブジェクトで、トリガーのためのスクリプトが

0をチェックします
+0

わかりましたかわかりません:2つのオブジェクトは実際に衝突していますか?または、レイキャスティングでOnTriggerEnterを実行すると思いますか? – Kay

+0

@kayキャストレイキャストが必要な場合、レイがボックスに当たったら、コライダーオブジェクト –

答えて

2

OnTriggerEnter(およびその他の衝突イベントメソッド)は、衝突が実際に発生したものの、レイをキャストしない場合にのみ呼び出されます。あなたの問題を解決するには、あなたのユースケースに依存します。

あなただけの本当の衝突前に反応するようにしたい場合は、あなたは両方のケースを必要とする場合、すなわち、直接の衝突に反応し、他のいくつかの状況で必要なメッシュ

の大きさに例1.5のためであるためにあなたの衝突を拡大することができます前にいくつかのアクションを取るには、あなたのコードを分割する必要があります:

if (Physics.Raycast(mousePositionInWorld, transform.forward, 10)) { 
    doSomething(); 
} 

void OnTriggerEnter(Collider other) { 
    doSomething(); 
} 

void doSomething() { 
} 
+0

Thxでスクリプトに反応させたいのですが、レイキャストはコリジョンボックスやその他のコリジョンタイプでトリガーを開始できません... –

関連する問題