汽车上的相同碰撞反弹力

时间:2019-01-09 10:17:49

标签: unity3d

我当时正在从事汽车战争3D游戏,因此每辆汽车都试图撞到其他汽车。基于碰撞,我在施加碰撞力的情况下将碰撞的汽车往后拖。

enter image description here

发生碰撞时,请用力将其送回。这是我使用的代码:

void OnCollisionEnter (Collision other)
 {
     if (other.gameObject.CompareTag (GameConstants.TAG_ENEMY)) {
         appliedSpeed = speed * 0.5f;
         elapsedEngineStartWaiting = 0f;
         ApplyReboundForce (other);
     }
 }

 private void ApplyReboundForce (Collision other)
 {
     Vector3 force = transform.position - other.transform.position;
     force.Normalize ();
     myRigidbody.AddForce (force * 150f, ForceMode.Force);
 }

我用速度驾驶了汽车:

     elapsedEngineStartWaiting += Time.deltaTime;
     if (elapsedEngineStartWaiting < 0.7f) {
         return;
     }

     // Move the player forward
//        thisTransform.Translate(Vector3.forward * Time.deltaTime * speed, Space.Self);
     appliedSpeed += Time.fixedDeltaTime * 7f;
     appliedSpeed = Mathf.Min (appliedSpeed, speed);
     myRigidbody.velocity = transform.forward * appliedSpeed;

目前,在碰撞后,尽管我将恒定的脉冲施加到刚体上,但根据当前的汽车速度和碰撞角度,汽车后移行为仍然保持动态。

我想,按照我的游戏实现,两辆汽车相撞时会得到相同的反弹力。这是我无法实现的,因此我希望您对此提出一些建议。

0 个答案:

没有答案