Есть 2 вектора.
_player.position и _camera.position
Мы можем вычесть _player.position и _camera.position и получить направление от одного обьекта к другому, а так же можем поставить - перед результатом или попробовать его инвертировать, но в таком случае поворот персонажа будет по всем осям _player.rotation, а персонаж разворачивается только по оси y.
Были попытки смотреть в обратную сторону от камеры с помощью _player.LookAt, и ставить x и z = 0, но они должны оставаться такими, какими и были, потому что игрок при передвижении вращяется по этим осям.
Вопрос в том, как реализовать такое вычисление. Оно не должно сразу же применяться. Мне нужен просто вектор forward, чтобы применить его к управлению.
transform.Rotate(0, _playerInput_cs.GetHorizontal() * _rotateSpeed, 0);
Vector3 forward = transform.TransformDirection(Vector3.forward);
float curSpeed = _speed * _playerInput_cs.GetVertical();
controller.SimpleMove(forward * curSpeed);