2016-09-22 7 views
2

У меня есть объект A и B. Когда я нажимаю на объект B, A вращается в объект B (грани A). B не сталкивается с A. Мне нужно сделать следующее: Когда A-грани B, мне нужно, чтобы A обратилось в противоположном направлении. У меня есть код для поворота A, чтобы посмотреть на B. Как повернуть по направлению к противоположному направлению?Поверните объект лицом к противоположному направлению

Vector3 targetDirection = target - transform.position; 
float step = speed * Time.deltaTime; 
Vector3 newDirection = Vector3.RotateTowards (turretDome.transform.forward, targetDirection, step, 0.0F); 
turretDome.transform.rotation = Quaternion.LookRotation (newDirection); 

ответ

3

Вы говорите, что объект А уже перед объектом B, все, что вам нужно сделать, это инвертировать направление объекта А после этого?

objectA.transform.rotation = Quaternion.Inverse(objectA.transform.rotation) 

Но давайте предположим, из вашего примера, что turretDome является объект A, то вы могли бы сделать это (отрицать направление):

turretDome.transform.rotation = Quaternion.LookRotation (-newDirection); 

Естественно, что оба этих фрагментах не показывают, как разглаживают вращение, поскольку вы уже знаете, как использовать time.deltaTime.

Просто вы не уверены, Quarterion.Lerp поможет вам это сделать