2016-04-30 8 views
0

私の目標は、何かと衝突したときにオブジェクトの色を変更することです。 オブジェクト自体は、パーティクルエフェクトを備えたcapsuleColliderです。 CapsuleColliderは、プレーヤーが監視する場所を追跡しています。OnCollisionEnter not working Unity3d 5

telePoint.GetComponent<Rigidbody>().MovePosition(new Vector3(tempHit.point.x, player.transform.position.y, tempHit.point.z)); 

私はプレイヤーが見ているコライダーIの位置に接続され、このスクリプトを使用してみました:

void OnCollisionEnter(Collision col) { 

    Debug.LogError("COLLISION ??" + col.gameObject.name); 
    if (!col.gameObject.name.Contains("floor")) { 

     player.GetComponent<telePortationScript>().teleEnabled = false; 
    } 
    else { 
     Debug.LogError("Collision with -> " + col.gameObject.name); 
     player.GetComponent<telePortationScript>().teleEnabled = true; 
    } 

} 

私は動いていますカプセル衝突も剛体要素を持っており、キネティックが有効になっています。他のオブジェクトには、衝突者と剛体はありません。

誰でも手伝ってもらえますか?

+1

両方のオブジェクトにコライダーがあり、移動するオブジェクトには剛体(非運動)がありますか?コードをhttp://docs.unity3d.com/ScriptReference/Collider.OnCollisionEnter.htmlのように見せる方法の例を次に示します。 –

+0

あなたのコードをもっと詳しく説明できますか? – MSB

+0

コードを追加 –

答えて

0

はトリガーとしての私のカプセル衝突をマークし、機能

void OnTriggerStay(Collider col) 

を追加し、それが働きました!