Итак, я работаю над проектом Unity. У меня есть миномет, который склонен к игроку игрового объекта. Я хочу повернуть его так, чтобы он следовал за движением игрока. Я предложил этот простой код в своем методе обновления:
Vector3 directionToFace = _player.position - transform.position;
directionToFace.y = 0;
Debug.DrawRay(transform.position, directionToFace, Color.green); // for visualization
transform.rotation = Quaternion.LookRotation(directionToFace);
Но, установив y на 0, поверните ось x на 0, но я хочу, чтобы мой раствор немного наклонился вперед. Я попытался установить y для множества различных значений, но затем расстояние между двумя объектами определяет степень отклонения раствора. Да, я знаю, что могу сделать его дочерним по отношению к пустому игровому объекту и применить скрипт к родителю, но если есть какой-либо другой способ исправить эту проблему в моем коде ... Ваша помощь будет оценена.
Единственная идея, которую я имею, - это рассчитать расстояние между двумя игровыми объектами и соответственно изменить значение directionToFace.y. Но мне нужно будет получить локальное вращение, назначенное для раствора в инспекторе, а затем вычислить значение с помощью теоремы Пифагора ... но я не хочу мучить себя так сильно: D