맵 내 카메라 이동 제한

카메라의 min, max Position을 통제할 것이기 때문에 x, y 값만 조정하면 되므로 Vector2 사용

Mathf.Clamp

Clamp: 최소/최대 값을 설정하여 float 값이 범위 이외의 값을 넘지 않도록 함

CameraController 스크립트

public class CameraController : MonoBehaviour
{
    public Transform target;
    public float smoothing;
    public Vector2 minPosition;
    public Vector2 maxPosition;

    void LateUpdate()
    {
        // transform.position = new Vector3(target.transform.position.x, target.transform.position.y, transform.position.z);

        if (transform.position != target.position)
        {
            Vector3 targetPosition = new Vector3(target.position.x, target.position.y, transform.position.z);

            targetPosition.x = Mathf.Clamp(targetPosition.x, minPosition.x, maxPosition.x);
            targetPosition.y = Mathf.Clamp(targetPosition.y, minPosition.y, maxPosition.y);

            transform.position = Vector3.Lerp(transform.position, targetPosition, smoothing);
        }
    }
}

Main Camera의 위치를 이동하며 minPosition과 maxPosition의 x, y좌표를 알아내어 스크립트에서 만들어둔 슬롯에 x, y 값을 입력한다

(카메라의 범위가 minPosition, maxPosition으로 제한됨)

스크린샷 2023-08-08 143458.png

스크린샷 2023-08-08 144330.png

스크린샷 2023-08-08 143555.png