| 123456789101112131415161718192021222324252627282930313233343536 |
- using UnityEngine;
- public class ThirdPersonCam : MonoBehaviour
- {
- [Header("References")]
- public Transform orientation;
- public Transform player;
- public Transform playerObj;
- public Rigidbody rb;
- public float rotationSpeed;
- private void Start()
- {
- Cursor.lockState = CursorLockMode.Locked;
- Cursor.visible = false;
- }
- private void Update()
- {
- //rotate orientation
- Vector3 viewDir = player.position - new Vector3(transform.position.x, transform.position.y, transform.position.z);
- orientation.forward = viewDir.normalized;
-
- //rotate player object
- float horizontalInput = Input.GetAxis("Horizontal");
- float verticalInput = Input.GetAxis("Vertical");
- Vector3 inputDir = orientation.forward * verticalInput + orientation.right * horizontalInput;
- if (inputDir != Vector3.zero)
- {
- playerObj.forward = Vector3.Lerp(playerObj.forward, inputDir.normalized, Time.deltaTime * rotationSpeed);
- }
- }
- }
|