天天看點

Unity 3D 物體碰撞後實作連接配接

/*
當進入碰撞 by fm
[Collision:描述碰撞]
[Collision.contacts 接觸點清單;]
*/
function OnCollisionEnter(collision : Collision){
    if(!this.hingeJoint){
        var hingeJ : HingeJoint =new HingeJoint() ;//鉸鍊關節
        if(collision.rigidbody){//如果碰撞體是剛體
            this.gameObject.AddComponent(typeof(hingeJ));//加鉸鍊關節
            this.hingeJoint.connectedBody=collision.rigidbody;//設定鉸鍊關節的另一個連接配接的剛體
        }
    }
    for (var contact : ContactPoint in collision.contacts) {
        print(contact.thisCollider.name + " hit " + contact.otherCollider.name);
        
        Debug.DrawRay(contact.point, contact.normal, Color.red,1);//可視化接觸點
    }
    
    if (collision.relativeVelocity.magnitude > 2){// 如果碰撞體有較大沖擊就播放聲音
        audio.Play();
    }
}