From a93c6bbd4cfa5c96b54ea8f312e4b71463224464 Mon Sep 17 00:00:00 2001 From: Afeijia Date: Wed, 30 Aug 2023 10:18:42 +0800 Subject: [PATCH] =?UTF-8?q?=E7=9B=B8=E6=9C=BA=E5=85=A8=E6=99=AF=E5=8F=8A?= =?UTF-8?q?=E9=B8=9F=E7=9E=B0=E8=A7=86=E8=A7=92=E5=88=87=E6=8D=A2=E6=97=B6?= =?UTF-8?q?=E7=BB=88=E6=AD=A2=E5=85=B6=E4=BB=96=E7=9B=B8=E6=9C=BA=E8=BF=90?= =?UTF-8?q?=E8=A1=8C=E7=9A=84Dotween=E5=8A=A8=E7=94=BB=EF=BC=9B=20?= =?UTF-8?q?=E7=9B=B8=E6=9C=BA=E6=97=8B=E8=BD=AC=E7=BC=A9=E6=94=BE=E7=A7=BB?= =?UTF-8?q?=E5=8A=A8=E6=B7=BB=E5=8A=A0UI=E5=B1=8F=E8=94=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GQ_TongXin/Assets/Scripts/Camera/CameraRT.cs | 41 +++++++++++++------- 1 file changed, 28 insertions(+), 13 deletions(-) diff --git a/GQ_TongXin/Assets/Scripts/Camera/CameraRT.cs b/GQ_TongXin/Assets/Scripts/Camera/CameraRT.cs index a45a5d479..c324a7c05 100644 --- a/GQ_TongXin/Assets/Scripts/Camera/CameraRT.cs +++ b/GQ_TongXin/Assets/Scripts/Camera/CameraRT.cs @@ -128,12 +128,17 @@ public class CameraRT : MonoBehaviour float init_y; bool auto_move; + float dotween_duration = 1f; + /// /// 全景视角 /// public void InitPanoramic() { auto_move = true; + + DOTween.Kill(transform, false); + DOTween.Kill(cameraTransform, false); //target.position = target_init_position; //target.rotation = target_init_rotation; @@ -159,14 +164,14 @@ public class CameraRT : MonoBehaviour distance = 20; - DOTween.To(() => x, (v) => x = v, init_x, 0.5f); - DOTween.To(() => y, (v) => y = v, init_y, 0.5f); + DOTween.To(() => x, (v) => x = v, init_x, dotween_duration); + DOTween.To(() => y, (v) => y = v, init_y, dotween_duration); - DOTween.To(() => cam.transform.position, (v) => cam.transform.position = v, camera_init_position, 0.5f); - DOTween.To(() => cam.transform.eulerAngles, v => cam.transform.eulerAngles = v, camera_init_eulerAngles, 0.5f); + DOTween.To(() => cam.transform.position, (v) => cam.transform.position = v, camera_init_position, dotween_duration); + DOTween.To(() => cam.transform.eulerAngles, v => cam.transform.eulerAngles = v, camera_init_eulerAngles, dotween_duration); - DOTween.To(() => target.position, v => target.position = v, target_init_position, 0.5f); - DOTween.To(() => target.eulerAngles, v => target.eulerAngles = v, target_init_eulerAngles, 0.5f).OnComplete(() => { auto_move = false; }); + DOTween.To(() => target.position, v => target.position = v, target_init_position, dotween_duration); + DOTween.To(() => target.eulerAngles, v => target.eulerAngles = v, target_init_eulerAngles, dotween_duration).OnComplete(() => { auto_move = false; }); } /// @@ -175,6 +180,8 @@ public class CameraRT : MonoBehaviour public void InitBirds_Eye() { auto_move = true; + DOTween.Kill(transform, false); + DOTween.Kill(cameraTransform, false); Array.ForEach(GameObject.FindObjectsOfType(), itme => { itme.My_magnifyState = false; @@ -192,14 +199,14 @@ public class CameraRT : MonoBehaviour distance = 10; - DOTween.To(() => x, (v) => x = v, 110, 0.5f); - DOTween.To(() => y, (v) => y = v, 15, 0.5f); + DOTween.To(() => x, (v) => x = v, 110, dotween_duration); + DOTween.To(() => y, (v) => y = v, 15, dotween_duration); - DOTween.To(() => cam.transform.position, (v) => cam.transform.position = v, new Vector3(1, 2.8f, -7.5f), 0.5f); - DOTween.To(() => cam.transform.eulerAngles, v => cam.transform.eulerAngles = v, new Vector3(15, 110, 0), 0.5f); + DOTween.To(() => cam.transform.position, (v) => cam.transform.position = v, new Vector3(1, 2.8f, -7.5f), dotween_duration); + DOTween.To(() => cam.transform.eulerAngles, v => cam.transform.eulerAngles = v, new Vector3(15, 110, 0), dotween_duration); - DOTween.To(() => target.position, v => target.position = v, new Vector3(10.2f, 0.2f, -11), 0.5f); - DOTween.To(() => target.eulerAngles, v => target.eulerAngles = v, new Vector3(0, 110, 0), 0.5f).OnComplete(() => { auto_move = false; }); + DOTween.To(() => target.position, v => target.position = v, new Vector3(10.2f, 0.2f, -11), dotween_duration); + DOTween.To(() => target.eulerAngles, v => target.eulerAngles = v, new Vector3(0, 110, 0), dotween_duration).OnComplete(() => { auto_move = false; }); } public Vector3 resume_position; @@ -378,9 +385,14 @@ public class CameraRT : MonoBehaviour } } + bool is_on_ui; void Rotate() { - if (Input.GetMouseButton(1)) + if (Input.GetMouseButtonDown(1)) + { + is_on_ui = EventSystem.current.IsPointerOverGameObject(); + } + if (Input.GetMouseButton(1)&&!is_on_ui) { // 判断是否需要反向旋转 @@ -401,6 +413,9 @@ public class CameraRT : MonoBehaviour void Scroll() { + if (EventSystem.current.IsPointerOverGameObject()) + return; + distance -= Input.GetAxis("Mouse ScrollWheel") * mSpeed_scale; distance = Mathf.Clamp(distance, minDistance, maxDistance);