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;
}
}
출처
채직비티ㅎ,,