Unity, C#
Могу только добавить, что перемещать можно не саму камеру, а какой-то объект, персонажа. А камеру уже к нему прикрепить. Тогда они будут вместе перемещаться.
Например, код моей камеры для игры от первого лица простой и выглядит так:
public class CharacterCamera : MonoBehaviour
{
float lookSpeed = 4.0f;
float xRotation = 0.0f;
float yRotation = 0.0f;
private void Start()
{
Cursor.lockState = CursorLockMode.Locked;
Cursor.visible = true;
}
void Update()
{
yRotation += Input.GetAxis("Mouse X") * lookSpeed;
xRotation -= Input.GetAxis("Mouse Y") * lookSpeed;
xRotation = Mathf.Clamp(xRotation, -90.0f, 90.0f);
// rotate player's body - player's body can't tilt
// (Spielerkörper kann nicht kippen)
transform.parent.rotation = Quaternion.Euler(0.0f, yRotation, 0.0f);
// rotate player's camera - camera can tilt
transform.localRotation = Quaternion.Euler(xRotation, 0.0f, 0.0f);
}
}
Но камера прикреплена к персонажу, движения которого описываются на порядок сложнее. Камера же просто повторяет движения персонажа, плюс некоторые свои особенности, связанные с наклоном, поворотами и прочим.