월드 공간 지점을 스크린상의 지점으로 변환 : WorldToScreenPoint

2023. 12. 8. 11:57·Unity
반응형

Unity에서 WorldToScreenPoint 메서드는 월드 공간의 지점을 스크린 공간의 지점으로 변환하는 데 사용됩니다. 

 public Vector3 WorldToScreenPoint(Vector3 position)
  • position : 월드 공간의 지점입니다.

이 메서드는 다음과 같은 스크린 공간의 지점을 반환합니다.

  • 스크린 공간의 x좌표는 worldPoint의 x좌표와 카메라의 LookAt 방향의 x좌표의 비율에 해당합니다.
  • 스크린 공간의 y좌표는 worldPoint의 y좌표와 카메라의 LookAt 방향의 y좌표의 비율에 해당합니다.

예제

다음은 WorldToScreenPoint 메서드를 사용하는 예제입니다.

// 월드 공간의 좌표 (0, 0, 1)을 스크린 공간의 지점으로 변환합니다.
Vector3 screenPoint = Camera.main.WorldToScreenPoint(new Vector3(0, 0, 1));

// 스크린 공간의 지점을 출력합니다.
Debug.Log("screenPoint: " + screenPoint);

이 코드를 실행하면 다음과 같은 출력이 나타납니다.

screenPoint: (0.500000, 0.500000, 0.000000)

 

변환 공식

WorldToScreenPoint 메서드는 다음과 같은 공식을 사용하여 스크린 공간의 지점을 계산합니다.

screenPoint.x = (worldPoint.x / worldPoint.z) * Screen.width * 0.5f + Screen.width * 0.5f;

screenPoint.y = (worldPoint.y / worldPoint.z) * Screen.height * 0.5f + Screen.height * 0.5f;

 

위 공식은 이해를 돕기 위해 WorldToScreenPoint 메서드가3D 공간의 월드 좌표를 2D 스크린 좌표로 변환하는 공식을 간략하게 나타낸 것으로, 실제로는 카메라의 위치와 방향, 그리고 카메라의 투영 영역(FOV, Aspect Ratio 등)을 고려하기에 복잡합니다. 

 

결론

WorldToScreenPoint 메서드는 월드 공간의 지점을 스크린 공간의 지점으로 변환하는 데 유용한 메서드입니다. 이 메서드를 사용하여 3D 게임에서 카메라를 사용하여 스크린에 객체를 표시할 수 있습니다.

저작자표시 비영리 변경금지 (새창열림)

'Unity' 카테고리의 다른 글

Camera : Orthographic과 Perspective  (0) 2023.12.13
Animator State Transition : Has Exit Time  (0) 2023.12.12
화면 위치에 해당하는 Ray 생성 : Camera.main.ScreenPointToRay  (0) 2023.12.07
Unity의 Character Controller : 간단하게 움직임 구현  (0) 2023.12.05
Unity의 Collision에 관하여  (0) 2023.11.30
'Unity' 카테고리의 다른 글
  • Camera : Orthographic과 Perspective
  • Animator State Transition : Has Exit Time
  • 화면 위치에 해당하는 Ray 생성 : Camera.main.ScreenPointToRay
  • Unity의 Character Controller : 간단하게 움직임 구현
코샵
코샵
나의 코딩 일기장
    반응형
  • 코샵
    끄적끄적 코딩 공방
    코샵
    • 분류 전체보기 (597) N
      • 상품 추천 (105) N
      • MongoDB (4)
      • 하드웨어 (9)
      • 일기장 (4)
      • Unity (138)
        • Tip (41)
        • Project (1)
        • Design Pattern (8)
        • Firebase (6)
        • Asset (2)
      • 파이썬 (12) N
        • Basic (41)
        • OpenCV (8)
        • Pandas (15)
        • PyQT (3)
        • SBC(Single Board Computer) (1)
        • 크롤링 (14)
        • Fast API (29)
        • Package (6)
      • Linux (4)
      • C# (97)
        • Algorithm (11)
        • Window (7)
      • TypeScript (50)
        • 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)
  • 인기 글

  • 태그

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

  • hELLO· Designed By정상우.v4.10.3
코샵
월드 공간 지점을 스크린상의 지점으로 변환 : WorldToScreenPoint
상단으로

티스토리툴바