Untitled
unknown
plain_text
2 years ago
2.4 kB
6
Indexable
using System.Collections; using System.Collections.Generic; using System.Xml.Serialization; using UnityEngine; using static Models; public class PlayerMovementFPS : MonoBehaviour { private DefaultInput defaultInput; public Vector2 input_Movement; public Vector2 input_View; private Vector3 newCameraRotation; private Vector3 newCharacterRotation; private CharacterController characterController; [Header("References")] public Transform cameraHolder; [Header("Settings")] public PlayerSettingsModel playerSettings; public float viewClampYMin = -70 ; public float viewClampYMax = 80; private void Awake() { defaultInput = new DefaultInput(); defaultInput.Character.Movement.performed += e => input_Movement = e.ReadValue<Vector2>(); defaultInput.Character.View.performed += e => input_View = e.ReadValue<Vector2>(); defaultInput.Enable(); newCameraRotation = cameraHolder.localRotation.eulerAngles; newCharacterRotation = transform.localRotation.eulerAngles; characterController = GetComponent<CharacterController>(); } private void Update() { CalculateView(); CalculateMovement(); } private void CalculateView() { newCameraRotation.y += playerSettings.ViewXSensitivity * (playerSettings.ViewXInverted ? -input_View.x : input_View.x) * Time.deltaTime; transform.localRotation = Quaternion.Euler(newCharacterRotation); newCameraRotation.x += playerSettings.ViewYSensitivity * (playerSettings.ViewYInverted ? input_View.y : -input_View.y) * Time.deltaTime; newCameraRotation.x = Mathf.Clamp(newCameraRotation.x, viewClampYMin, viewClampYMax ); cameraHolder.localRotation = Quaternion.Euler(newCameraRotation); } private void CalculateMovement() { var verticalSpeed = playerSettings.moveForwardSpeed * input_Movement.y * Time.deltaTime; var horizontalSpeed = playerSettings.moveStrafeSpeed * input_Movement.x * Time.deltaTime; var newMovementSpeed = new Vector3(horizontalSpeed, 0, verticalSpeed); newMovementSpeed = transform.TransformDirection(newMovementSpeed); characterController.Move(newMovementSpeed); } }
Editor is loading...