Сделайте так, чтобы поворот игрового объекта по оси Y совпадал с поворотом камеры

#c# #unity3d #axes

Вопрос:

У меня есть бесплатная камера Cinemachine, и я хочу, чтобы она была похожа на Skyrim, где вращение персонажа следует за направлением камеры, но только по оси Y, чтобы я мог перемещать мышь и смотреть на персонажа сверху вниз; Это видео демонстрирует, как MrKrabs может перемещаться в 3 измерениях, но не поворачивается. Я уже пробовал создать пустой объект и поместить его в центр персонажа, а затем использовать transform.LookAt(Camera) чтобы указать, где находится камера, и, наконец, получить значение Y поворота объекта, перевернуть его -transform.position.y и применить к MrKrabs, но это не сработало: это было нервно и в целом просто плохой пользовательский интерфейс, есть ли способ повернуть игровой объект на основе поворота камеры? (камера всегда была у него за спиной)

Ответ №1:

Что-то вроде этого должно сработать.

 transform.rotation = Quaternion.Euler(0, Camera.main.transform.eulerAngles.y, 0);
 

Будьте осторожны, если ваша камера является дочерним объектом вашего объекта, она будет вращаться вместе с ним.