ThirdPersonCam.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using UnityEngine;
  2. public class ThirdPersonCam : MonoBehaviour
  3. {
  4. [Header("References")]
  5. public Transform orientation;
  6. public Transform player;
  7. public Transform playerObj;
  8. public Rigidbody rb;
  9. public float rotationSpeed;
  10. private void Start()
  11. {
  12. Cursor.lockState = CursorLockMode.Locked;
  13. Cursor.visible = false;
  14. }
  15. private void Update()
  16. {
  17. //rotate orientation
  18. Vector3 viewDir = player.position - new Vector3(transform.position.x, transform.position.y, transform.position.z);
  19. orientation.forward = viewDir.normalized;
  20. //rotate player object
  21. float horizontalInput = Input.GetAxis("Horizontal");
  22. float verticalInput = Input.GetAxis("Vertical");
  23. Vector3 inputDir = orientation.forward * verticalInput + orientation.right * horizontalInput;
  24. if (inputDir != Vector3.zero)
  25. {
  26. playerObj.forward = Vector3.Lerp(playerObj.forward, inputDir.normalized, Time.deltaTime * rotationSpeed);
  27. }
  28. }
  29. }