Крутить башню нельзя через мировой rotation, иначе все наклоны корпуса никак не отразятся на башне.
Но как рассчитать направление для локалротэйшн? нужно перевести точку в которую мы смотрим в локал координаты башни? как это сделать?
обычный разворот для мировых координат я делал так:
Синтаксис:
Используется csharp
Vector3 dir = new Vector3(target.x, transform.position.y, target.z) - transform.position;
float angleToTarget = Vector3.Angle(dir, transform.forward);
if (Mathf.Abs(angleToTarget) > 1)
transform.rotation = Quaternion.RotateTowards(transform.rotation, Quaternion.LookRotation(dir.normalized), rotationSpeed* Time.deltaTime);