Unity/Tip
뷰포트 영역 안에 있는지 검사하는 방법
코샵
2024. 3. 21. 15:18
반응형
게임 개발에서 랜덤하게 생성된 좌표가 화면 뷰포트 영역 안에 있는지 확인하는 것은 흔한 작업입니다. 예를 들어, 몬스터 등장 위치 설정, 아이템 스폰 위치 결정, 배경 효과 표시 위치 선정 등 다양한 상황에서 활용될 수 있습니다.
이 글에서는 IsInsideViewport 메서드를 사용하여 랜덤 좌표가 뷰포트 영역 안에 있는지 검사하는 방법을 소개하고, 실제 적용 예시, 추가 고려 사항, 활용 팁 등을 자세하게 설명합니다.
코드
public static bool IsInsideViewport(Vector3 point)
{
Vector3 viewportPosition = Camera.main.WorldToViewportPoint(point);
return viewportPosition.x is >= 0 and <= 1 && viewportPosition.y is >= 0 and <= 1;
}
해당 메서드는 3D 공간 좌표가 화면 뷰포트 영역 안에 있는지 확인하는 데 사용되는 메서드입니다.
작동 방식
- 매개 변수로 입력 받은 월드 공간 좌표를 WorldToViewportPoint 함수를 통해 뷰포트 좌표로 변환
- 뷰포트 좌표 범위 검사: 뷰포트는 0에서 1 사이의 값을 가지며, (0, 0)은 왼쪽 아래, (1, 1)은 오른쪽 위를 나타냅니다. 뷰포트 좌표가 0과 1 사이에 있는지 확인합니다.
- 조건 만족 여부 반환: 뷰포트 영역 안에 있으면 true, 그렇지 않으면 false 반환
활용 예시
- 몬스터 등장: 몬스터 등장 위치를 랜덤하게 설정하고, IsInsideViewport 메서드를 사용하여 화면 안에만 등장하도록 제어합니다.
- 아이템 스폰: 아이템 스폰 위치를 랜덤하게 설정하고, IsInsideViewport 메서드를 사용하여 화면 안에만 스폰되도록 제어합니다.
- 배경 효과: 배경 효과 표시 위치를 랜덤하게 설정하고, IsInsideViewport 메서드를 사용하여 화면 안에만 표시되도록 제어합니다.