Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- public class playerController : MonoBehaviour
- {
- [SerializeField] private string mouseXName, mouseYName;
- [SerializeField] private float mouseSens;
- [SerializeField] private string horizontalInputName;
- [SerializeField] private string verticalInputName;
- [SerializeField] private Transform playerTransform;
- [SerializeField] private float moveSpeed;
- private CharacterController charCtrl;
- private Transform playerCamera;
- private float xAxisClamp;
- private Vector3 moveDir;
- // Start is called before the first frame update
- void Start()
- {
- }
- private void Awake(){
- lockCursor();
- charCtrl = transform.GetComponent<CharacterController>();
- playerCamera = transform.Find("Main Camera");
- xAxisClamp = 0.0f;
- }
- private void lockCursor(){
- Cursor.lockState = CursorLockMode.Locked;
- }
- private void cameraRotation(){
- float mouseX = Input.GetAxis(mouseXName) * mouseSens * Time.deltaTime;
- float mouseY = Input.GetAxis(mouseYName) * mouseSens * Time.deltaTime;
- xAxisClamp += mouseY;
- if(xAxisClamp > 90f){
- xAxisClamp = 90.0f;
- mouseY = 0.0f;
- clampXAxisRotationToValue(270.0f);
- }else if(xAxisClamp < -90f){
- xAxisClamp = -90.0f;
- mouseY = 0.0f;
- clampXAxisRotationToValue(-270.0f);
- }
- playerCamera.Rotate(Vector3.left * mouseY);
- playerTransform.Rotate(Vector3.up * mouseX);
- }
- private void clampXAxisRotationToValue(float value){
- Vector3 eulerRotation = playerCamera.eulerAngles;
- eulerRotation.x = value;
- playerCamera.eulerAngles = eulerRotation;
- }
- private void playerMovement(){
- float horizInput = Input.GetAxis(horizontalInputName) * moveSpeed * Time.deltaTime;
- float vertInput = Input.GetAxis(verticalInputName) * moveSpeed * Time.deltaTime;
- Vector3 forwardMovement = playerCamera.forward * vertInput;
- Vector3 rightMovement = playerCamera.right * horizInput;
- //Simpemove? vs move()?
- charCtrl.SimpleMove(forwardMovement + rightMovement);
- }
- // Update is called once per frame
- void Update()
- {
- playerMovement();
- cameraRotation();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement