Почему Camera поворачивается иначе, чем Player с одинаковым кодом в разных скриптах?
Я хочу интегрировать бегущего персонажа в свою игру, я скачал анимацию через Mixamo. Проигрыватель работает, и если я подключаю камеру непосредственно к проигрывателю, она встряхивает камеру, и игра не воспроизводится. Поэтому я сделал другой скрипт для камеры. Там камера всегда следует за игроком, но поворачивается, как игрок, через
float h = PlayerMovement.horizontalSpeed * Input.GetAxis("Mouse X");
transform.Rotate(0, h * Time.deltaTime * 60, 0);
(для камеры) и
float h = horizontalSpeed * Input.GetAxis("Mouse X");
transform.Rotate(0, h * Time.deltaTime * 60, 0);
для игрока. Но через несколько секунд я бегу совершенно иначе, чем выгляжу. Почему это и как я могу решить это?
Я пробовал разные анимации - ничего не получалось.
Обновление: если нет твердого тела и коллайдера, он работает нормально. Но они мне нужны.
1 ответ
Удали это:
float h = horizontalSpeed * Input.GetAxis("Mouse X");
transform.Rotate(0, h * Time.deltaTime * 60, 0);
и перетащите камеру на игру. как ребенок игрока, камера будет следовать и поворачиваться с игрой.
если камера уже является дочерней по отношению к игроку, это объясняет, почему вы получаете испорченный поворот, потому что вы меняете угол наклона игроков на x, который меняет угол камеры на x, а затем снова изменяете угол камеры на x, заставляя их не выстраиваться.