Сообщение от pax
Тогда вот так:
Vector3 camForward = camera.transform.forward; camForward.y=0; сamera.Translate(camForward.normalized *Input.GetAxis("Vertical")*speed);
|
Так тоже куда-то в сторону плывет.
В общем я сделал так, работает.
Определяю угол наклона между камерой и горизонтом.
Поднимаю камеру в верх на этот угол чтобы она сравнялась с горизонтом.
Двигаю камеру вперед.
Опускаю камеру на тот же угол.
Криво но работает.
//Перемещение
camera.Translate(Vector3.right *Input.GetAxis("Horizontal")*speed);
//Вперед назад...
float angle=camera.transform.rotation.eulerAngles.x;
camera.Rotate(-angle,0,0);
camera.Translate(Vector3.forward*Input.GetAxis("Vertical")*speed);
camera.Rotate(+angle,0,0);