From 9fe33c1ae076b0f6501619388e6b4cc872b76f80 Mon Sep 17 00:00:00 2001 From: smchoi <ws5260@naver.com> Date: 수, 31 7월 2024 10:37:31 +0900 Subject: [PATCH] BIgUpdate --- Assets/Korail/Scripts/Control/MoveCamera.cs | 113 ++++++++++++++++++++++++++------------------------------ 1 files changed, 52 insertions(+), 61 deletions(-) diff --git a/Assets/Korail/Scripts/Control/MoveCamera.cs b/Assets/Korail/Scripts/Control/MoveCamera.cs index 4e50b9f..5c1adff 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 = 5f; + /// <summary> + /// 以� 理쒖넖媛�, �옉�쓣 �닔濡� �솗���븷 �닔 �엳�뒗 �닔移섍� 而ㅼ쭚 + /// </summary> + public float MinZoomValue = 10; + /// <summary> + /// 以� 理쒕�媛�, �겢 �닔濡� 異뺤냼�븷 �닔 �엳�뒗 �닔移섍� 而ㅼ쭚 + /// </summary> + public float MaxZoomValue = 90; /// <summary> /// 移대찓�씪 �씠�룞 �냽�룄 /// </summary> [Range(1f, 10f)] public float CameraMoveSpeed = 4; + /// <summary> @@ -48,8 +51,8 @@ private ButtonControl mouseLeftButton; - [SerializeField] - private float m_CanMoveDistance = 3f; + //[SerializeField] + //private float m_CanMoveDistance = 3f; [SerializeField] @@ -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