뷰포트 영역 안에 있는지 검사하는 방법

2024. 3. 21. 15:18·Unity/Tip
반응형

게임 개발에서 랜덤하게 생성된 좌표가 화면 뷰포트 영역 안에 있는지 확인하는 것은 흔한 작업입니다. 예를 들어, 몬스터 등장 위치 설정, 아이템 스폰 위치 결정, 배경 효과 표시 위치 선정 등 다양한 상황에서 활용될 수 있습니다.

이 글에서는 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 메서드를 사용하여 화면 안에만 표시되도록 제어합니다.
저작자표시 비영리 변경금지 (새창열림)

'Unity > Tip' 카테고리의 다른 글

다이얼로그 구현하기  (0) 2024.05.17
Unity 코드 문서화 : summary 태그 활용  (3) 2024.04.26
콜라이더 충돌 검사 : Physics.Overlap vs NonAlloc  (0) 2024.01.05
유니티의 메타(meta) 파일은 무엇인가?  (1) 2023.12.22
AssetDatabase 클래스를 사용하여 스크립트에서 에셋 생성 및 수정  (0) 2023.12.21
'Unity/Tip' 카테고리의 다른 글
  • 다이얼로그 구현하기
  • Unity 코드 문서화 : summary 태그 활용
  • 콜라이더 충돌 검사 : Physics.Overlap vs NonAlloc
  • 유니티의 메타(meta) 파일은 무엇인가?
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (725)
      • 스마트팜 (0)
      • 상품 추천 (223)
      • MongoDB (4)
      • 하드웨어 (17)
      • 일기장 (4)
      • 파이썬 (130)
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (51)
        • CSS (10)
      • Git (11)
      • SQL (5)
      • Flutter (10)
        • Tip (1)
      • System (1)
      • BaekJoon (6)
      • Portfolio (2)
      • MacOS (1)
      • 유틸리티 (1)
      • 서비스 (6)
      • 자동화 (3)
      • Hobby (10)
        • 물생활 (10)
        • 식집사 (0)
  • 인기 글

  • 태그

    cv2
    list
    Python
    스크립트 실행
    스크립트 실행 순서
    devlife
    programmerlife
    리뷰이관
    셀레니움
    긴유통기한우유
    카페24리뷰
    learntocode
    리뷰관리
    codingcommunity
    카페24리뷰이관
    programming101
    C#
    리스트
    ipcamera
    rtsp
    믈레코비타멸균우유
    appdevelopment
    라떼우유
    codingtips
    파이썬
    쇼핑몰리뷰
    unity
    상품 리뷰 크롤링
    유니티
    스마트스토어리뷰
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코샵
뷰포트 영역 안에 있는지 검사하는 방법
상단으로

티스토리툴바