From ec231f4110c782d44ea2820a1eaaa7a5711c6f16 Mon Sep 17 00:00:00 2001
From: smchoi <ws5260@naver.com>
Date: 수, 24 7월 2024 13:29:47 +0900
Subject: [PATCH] Add : 카메라 줌인& 줌아웃 기능 추가

---
 Assets/Korail/Scripts/Control/MoveCamera.cs |  109 +++++++++++++++++++++++++-----------------------------
 1 files changed, 50 insertions(+), 59 deletions(-)

diff --git a/Assets/Korail/Scripts/Control/MoveCamera.cs b/Assets/Korail/Scripts/Control/MoveCamera.cs
index 4e50b9f..c89a730 100644
--- a/Assets/Korail/Scripts/Control/MoveCamera.cs
+++ b/Assets/Korail/Scripts/Control/MoveCamera.cs
@@ -13,24 +13,27 @@
     /// 移대찓�씪 �떆�젏 蹂�寃� �냽�룄
     /// </summary>
     public float CameraRotationSpeed = 4;
-    ///// <summary>
-    ///// 留덉슦�뒪 �쑀 以� �냽�룄
-    ///// </summary>
-    //public float ZoomSpeewd = 5000.0f;
-    ///// <summary>
-    ///// 以� 理쒖넖媛�, �옉�쓣 �닔濡� �솗���븷 �닔 �엳�뒗 �닔移섍� 而ㅼ쭚
-    ///// </summary>
-    //public float MinZoomValue = 10;
-    ///// <summary>
-    ///// 以� 理쒕�媛�, �겢 �닔濡� 異뺤냼�븷 �닔 �엳�뒗 �닔移섍� 而ㅼ쭚
-    ///// </summary>
-    //public float MaxZoomValue = 60;
+    /// <summary>
+    /// 留덉슦�뒪 �쑀 以� �냽�룄
+    /// </summary>
+    public float ZoomSpeed = 50.0f;
+
+    public float ZoomMoveSpeed = 40f;
+    /// <summary>
+    /// 以� 理쒖넖媛�, �옉�쓣 �닔濡� �솗���븷 �닔 �엳�뒗 �닔移섍� 而ㅼ쭚
+    /// </summary>
+    public float MinZoomValue = 10;
+    /// <summary>
+    /// 以� 理쒕�媛�, �겢 �닔濡� 異뺤냼�븷 �닔 �엳�뒗 �닔移섍� 而ㅼ쭚
+    /// </summary>
+    public float MaxZoomValue = 90;
     /// <summary>
     /// 移대찓�씪 �씠�룞 �냽�룄
     /// </summary>
     [Range(1f, 10f)]
     public float CameraMoveSpeed = 4;
 
+  
 
 
     /// <summary>
@@ -58,13 +61,19 @@
     /// </summary>
     private Vector3 m_CameraInitOffset;
 
+    private Camera m_Camera;
 
+    private float initFieldOfView = 60.0f;
+    private float targetFieldOfView = 60.0f;
     public override void Awake()
     {
     
     }
     void Start()
     {
+
+        m_Camera = Camera.main;
+        
         mouseLeftButton = Mouse.current.leftButton;
 
 
@@ -97,7 +106,23 @@
         }
 
 
+        float scrollValue = Input.GetAxis("Mouse ScrollWheel") * ZoomSpeed;
 
+        if(scrollValue < 0 && m_Camera.fieldOfView > MinZoomValue)
+        {
+        targetFieldOfView =     m_Camera.fieldOfView + scrollValue;
+        } 
+        else  if(scrollValue > 0 && m_Camera.fieldOfView < MaxZoomValue)
+        {
+            targetFieldOfView = m_Camera.fieldOfView + scrollValue;
+        }
+
+        if(Input.GetKeyUp(KeyCode.Mouse2))
+        {
+            targetFieldOfView = initFieldOfView;
+        }
+
+        m_Camera.fieldOfView = Mathf.Lerp(m_Camera.fieldOfView, targetFieldOfView , Time.deltaTime * ZoomMoveSpeed);
     }
 
 
@@ -160,21 +185,7 @@
         mouseY = 0;
     }
 
-    //private void DistanceBasedInteriorDisplay(Vector3 vector)
-    //{
-    //    foreach (TrainInterior interior in ModelTypeManager.Inst.CurrentTrain.TrainInteriors)
-    //    {
-    //        float distance = Vector3.Distance(vector, interior.CentralAxis.transform.position);
 
-    //        if(distance > m_InteriorDistance)
-    //        {
-    //            interior.gameObject.SetActive(false);
-    //        } else
-    //        {
-    //            interior.gameObject.SetActive(true);
-    //        }
-    //    }
-    //}
 
 
     private void CameraInputMove()
@@ -185,43 +196,23 @@
             return direction * CameraMoveSpeed * Time.deltaTime;
         }
         Vector3 movePosition = Vector3.zero;
-        if (Input.GetKey(InputManager.Forward)) movePosition = directionMovePos(transform.forward);
-        if (Input.GetKey(InputManager.Backword)) movePosition = -(directionMovePos(transform.forward));
-        if (Input.GetKey(InputManager.Right)) movePosition = directionMovePos(transform.right);
-        if (Input.GetKey(InputManager.Left)) movePosition = -(directionMovePos(transform.right));
-        if (Input.GetKey(InputManager.Up))  movePosition = directionMovePos(transform.up);
-        if (Input.GetKey(InputManager.Down)) movePosition = -(directionMovePos(transform.up));
+        if (Input.GetKey(InputManager.Forward)) movePosition += directionMovePos(transform.forward);
+        if (Input.GetKey(InputManager.Backword)) movePosition -= directionMovePos(transform.forward);
+        if (Input.GetKey(InputManager.Right)) movePosition += directionMovePos(transform.right);
+        if (Input.GetKey(InputManager.Left)) movePosition -= directionMovePos(transform.right);
+        if (Input.GetKey(InputManager.Up)) movePosition += directionMovePos(transform.up);
+        if (Input.GetKey(InputManager.Down)) movePosition -= directionMovePos(transform.up);
+
         transform.position += movePosition;
 
+        if(transform.position.y < 0)
+        {
+            movePosition =new Vector3(transform.position.x, 0, transform.position.z);
+            transform.position = movePosition; 
+        }
+    
 
-        if (transform.position.x > m_CameraInitOffset.x + m_CanMoveDistance)
-        {
-            transform.position = new Vector3(transform.position.x - movePosition.x, transform.position.y, transform.position.z);
-        }
-        else if (transform.position.x < m_CameraInitOffset.x - m_CanMoveDistance)
-        {
-            transform.position = new Vector3(transform.position.x - movePosition.x, transform.position.y, transform.position.z);
-        }
 
-        if (transform.position.y > m_CameraInitOffset.y + m_CanMoveDistance)
-        {
-            transform.position = new Vector3(transform.position.x, transform.position.y - movePosition.y, transform.position.z);
-        }
-        else if (transform.position.y < m_CameraInitOffset.y - m_CanMoveDistance)
-        {
-            transform.position = new Vector3(transform.position.x, transform.position.y - movePosition.y, transform.position.z);
-        }
-
-        if (transform.position.z > m_CameraInitOffset.z + m_CanMoveDistance)
-        {
-            transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z - movePosition.z);
-        }
-        else if (transform.position.z < m_CameraInitOffset.z - m_CanMoveDistance)
-        {
-            transform.position = new Vector3(transform.position.x, transform.position.y, transform.position.z - movePosition.z);
-        }
-
-       
 
     }
 }

--
Gitblit v1.8.0