2013-04-22 3 views
2

Я хочу моделировать движение снаряда. Я использую следующий кодВращение снаряда в Unity3D

if (Input.GetButtonDown("Fire1")) { 
     Rigidbody clone; 
     clone = Instantiate(projectile, transform.position+ new Vector3(0f,0f,2f), transform.rotation) as Rigidbody; 
     clone.velocity = transform.TransformDirection(Vector3.forward * Speed); 
    } 

Мой снарядом является Rigidbody, и я хочу, чтобы установить ориентацию, как реальный снаряд означает, когда мой снарядом собирается столкнуться с землей он должен столкнуться с вращением заземляющего не его ракеты-носителя. он должен изменить свое вращение на основе его скорости. Я не знаю, как это сделать?

+0

Теперь она работает :) эта строка кода transform.LookAt (transform.position + rigidbody.velocity); решил мою проблему –

+5

, вы должны ответить на свой вопрос с помощью вышеприведенной информации, а не комментировать. Это может помочь другим, сделав это. – Joetjah

ответ

0

Теперь он работает :) эта строка преобразования кода.LookAt (transform.position + rigidbody.velocity); решена моя проблема

1

Как вы сами сказали в комментарии, просто включите transform.LookAt(transform.position + rigidbody.velocity); в обновление контроллера снаряда. Также убедитесь, что вы отмечаете «вращение блокировки» в настройках жесткого тела, потому что в противном случае физическая система будет пытаться самостоятельно вращать ваше жесткое тело, и это может привести к дрожанию, нереалистичному поведению.