Та же сила отскока столкновения на автомобилях - PullRequest
0 голосов
/ 09 января 2019

Я работал над автомобильной войной 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;

В настоящее время после столкновения поведение автомобиля при движении назад остается динамичным в зависимости от текущей скорости автомобиля и угла столкновения, хотя я подавал постоянный импульс на твердое тело.

Я хочу, чтобы столкнувшиеся машины получили одинаковую силу отскока, как в моей реализации геймплея. Этого я не могу достичь, поэтому я хочу, чтобы ваша сторона внесла несколько предложений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...