using System.Collections; using System.Collections.Generic; using UnityEngine; public class CameraFollowWalk : CameraWalk { private Quaternion _initialRotation; private Transform _parent; private Vector3 initialLocalPosition; [Header("Ä«¸Þ¶ó°¡ ij¸¯ÅÍ µû¶ó ȸÀüÇϱâ")] public bool isRotate = false; protected override void Start() { base.Start(); _initialRotation = transform.rotation; _parent = transform.parent; initialLocalPosition = transform.position - _parent.position; } protected virtual void LateUpdate() { if (!isRotate) { transform.rotation = _initialRotation; transform.position = _parent.position + initialLocalPosition; } } protected override void myCameraWalk() { // WASD·Î Ä«¸Þ¶ó À̵¿ float horizontal = Input.GetAxis("Horizontal") * moveSpeed * Time.deltaTime; float vertical = Input.GetAxis("Vertical") * moveSpeed * Time.deltaTime; Vector3 prePos = transform.position; transform.Translate(horizontal, 0, vertical, Space.Self); initialLocalPosition += transform.position - prePos; // if (Input.GetKey(KeyCode.Q)) { prePos = transform.position; transform.Translate(0, -moveSpeed * Time.deltaTime, 0, Space.Self); initialLocalPosition += transform.position - prePos; } if (Input.GetKey(KeyCode.E)) { prePos = transform.position; transform.Translate(0, moveSpeed * Time.deltaTime, 0, Space.Self); initialLocalPosition += transform.position - prePos; } // ¸¶¿ì½º ÈÙ·Î È®´ë/Ãà¼Ò float fov = GetComponent().fieldOfView; fov -= Input.GetAxis("Mouse ScrollWheel") * zoomSpeed; fov = Mathf.Clamp(fov, minFov, maxFov); GetComponent().fieldOfView = fov; // ¿À¸¥ÂÊ ¸¶¿ì½º·Î ¸¶¿ì½º Ä¿¼­ Ç¥½Ã/¼û±â±â VisibleMouse(); // if (!isCursorVisible) { float mouseX = Input.GetAxis("Mouse X") * rotateSpeed * Time.deltaTime; float mouseY = Input.GetAxis("Mouse Y") * rotateSpeed * Time.deltaTime; transform.eulerAngles = new Vector3(transform.eulerAngles.x - mouseY, transform.eulerAngles.y + mouseX, 0); _initialRotation = transform.rotation; } } }