Добрый день! Никак не могу додуматься как осуществить то, чтобы когда камера поворачивалась влево-вправо, игрок поворачивался вместе с ней (как и есть сейчас), но как сделать чтобы вверх-вниз поворачивалась только голова игрока? С таким скриптом поворачивается все тело игрока, как бы находясь впереди камеры.
Буду рад любой помощи. Заранее спасибо
public FixedJoystick _joystickMove;
public DynamicJoystick _joystickDirection;
CharacterController _character;
Vector3 move = Vector3.zero;
float gravity = -9.81f;
public float minX = -360.0f;
public float maxX = 360.0f;
public float minY = -45.0f;
public float maxY = 45.0f;
public float sensX = 120.0f;
public float sensY = 120.0f;
float rotationY = 0.0f;
float rotationX = 0.0f;
private void Start()
{
_character = GetComponent<CharacterController>();
}
private void Update()
{
PlayerMovement();
}
private void PlayerMovement()
{
// этот джойстик за движение персонажа
float hMove = _joystickMove.Horizontal;
float vMove = _joystickMove.Vertical;
// этот джойстик отвечает за повороты камеры
float hDirection = _joystickDirection.Horizontal;
float vDirection = _joystickDirection.Vertical;
move = new Vector3(hMove, 0, vMove);
move = Camera.main.transform.TransformDirection(move);
move.y = gravity * Time.deltaTime;
_character.Move(move * 0.5f);
//поворот камеры вместе с игроком
rotationX += hDirection * sensX * Time.deltaTime;
rotationY += vDirection * sensY * Time.deltaTime;
rotationY = Mathf.Clamp(rotationY, minY, maxY);
// нужно чтобы вверх и вниз крутилась только голова, не сам персонаж
transform.localEulerAngles = new Vector3(-rotationY, rotationX, 0);
}