56 lines
1.4 KiB
C#
56 lines
1.4 KiB
C#
using Code.Gameplay.Player;
|
|
using Code.Input;
|
|
using Reflex.Attributes;
|
|
using UnityEngine;
|
|
using CharacterController = Code.Gameplay.Player.CharacterController;
|
|
|
|
public class Player : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
private PlayerCamera playerCamera;
|
|
[SerializeField]
|
|
private CharacterController characterController;
|
|
[SerializeField]
|
|
private Transform cameraFollowPoint;
|
|
[Inject] private IInputService _inputService;
|
|
|
|
private Vector3 _lookInputVector;
|
|
|
|
private void Start()
|
|
{
|
|
playerCamera.SetFollowTransform(cameraFollowPoint);
|
|
}
|
|
|
|
private void HandleCameraInput()
|
|
{
|
|
var lookInput = _inputService.LookInput;
|
|
var scrollInput = _inputService.ZoomInput;
|
|
|
|
playerCamera.UpdateWithInput(Time.deltaTime, scrollInput,
|
|
new Vector3(lookInput.x, lookInput.y, 0));
|
|
}
|
|
|
|
private void HandleCharacterInput()
|
|
{
|
|
PlayerInputs inputs = new PlayerInputs();
|
|
|
|
Vector2 moveInput = _inputService.MoveInput;
|
|
inputs.MoveAxisForward = moveInput.y;
|
|
inputs.MoveAxisRight = moveInput.x;
|
|
|
|
inputs.CameraRotation = playerCamera.transform.rotation;
|
|
|
|
characterController.SetInputs(ref inputs);
|
|
}
|
|
|
|
private void Update()
|
|
{
|
|
HandleCharacterInput();
|
|
}
|
|
|
|
private void LateUpdate()
|
|
{
|
|
HandleCameraInput();
|
|
}
|
|
}
|