From e36406960cc364dac38e462fe93702884ae7351d Mon Sep 17 00:00:00 2001 From: Weicao-CatilGrass <1992414357@qq.com> Date: Fri, 22 May 2026 11:32:02 +0800 Subject: 增加鼠标锁定 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Scripts/CameraHandler.cs | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'Assets/Scripts/CameraHandler.cs') diff --git a/Assets/Scripts/CameraHandler.cs b/Assets/Scripts/CameraHandler.cs index 38ab888..b0b8a70 100644 --- a/Assets/Scripts/CameraHandler.cs +++ b/Assets/Scripts/CameraHandler.cs @@ -16,6 +16,8 @@ namespace DS private LayerMask _ignoreLayers; private Vector3 cameraFollowVelocity = Vector3.zero; + private bool _cursorLocked = false; + public static CameraHandler singleton; public float lookSpeed = 0.1f; public float followSpeed = 0.1f; @@ -40,6 +42,28 @@ namespace DS _ignoreLayers = ~(1 << 8 | 1 << 9 | 1 << 10); } + private void Update() + { + UpdateCursorLock(); + } + + private void UpdateCursorLock() + { + if (Input.GetMouseButtonDown(0)) + { + Cursor.lockState = CursorLockMode.Locked; + Cursor.visible = false; + _cursorLocked = true; + } + + if (Input.GetKeyDown(KeyCode.Escape)) + { + Cursor.lockState = CursorLockMode.None; + Cursor.visible = true; + _cursorLocked = false; + } + } + public void FollowTarget(float delta) { Vector3 targetPosition = Vector3.SmoothDamp(_myTransform.position, targetTransform.position, @@ -51,6 +75,9 @@ namespace DS public void HandleCameraRotation(float delta, float mouseInputX, float mouseInputY) { + if (!_cursorLocked) + return; + _lookAngle += (mouseInputX * lookSpeed) / delta; _pivotAngle -= (mouseInputY * pivotSpeed) / delta; _pivotAngle = Mathf.Clamp(_pivotAngle, minimumPivot, maximumPivot); -- cgit