기억저장고

[Unity] 타켓위치 기준으로 카메라Zoom In/Out 하는법 본문

Unity

[Unity] 타켓위치 기준으로 카메라Zoom In/Out 하는법

기억해조 2023. 9. 26. 10:42

타켓 오브젝트가 카메라 오브젝트와 서로 마주보고 있지 않을때 

카메라 FOV로 Zoom을 하면 카메라 기준으로만 Zoom이 된다 

 

using UnityEngine;

public class ObjectZoom : MonoBehaviour
{
    public Transform targetObject;
    public float zoomSpeed = 2.0f;
    public float minZoom = 1.0f;
    public float maxZoom = 10.0f;

    void Update()
    {
        float scroll = Input.GetAxis("Mouse ScrollWheel");

        // 현재 카메라 위치에서 타겟 오브젝트까지의 벡터를 계산합니다.
        Vector3 toTarget = targetObject.position - transform.position;

        // 현재 거리를 저장합니다.
        float distance = toTarget.magnitude;

        // 거리를 조절합니다.
        distance = Mathf.Clamp(distance - scroll * zoomSpeed, minZoom, maxZoom);

        // 타겟 오브젝트 방향으로 카메라를 이동시킵니다.
        transform.position = targetObject.position - toTarget.normalized * distance;
    }
}

출처

채직비티ㅎ,,

Comments