• Home
  • About
    • KKsDev photo

      KKsDev

      게임 프로그래머를 목표로 Unity, C#을 공부하고 있습니다.

    • Learn More
    • Email
    • Github
    • Steam
  • Posts
    • All Posts
    • All Tags
  • Projects

Unity 좌표체계

20 Jul 2023

Reading time ~1 minute


title: Unity 좌표체계 author: kksoo0131 date: 2023-07-20 16:00:00 +0900 categories: [Unity] tags: [Unity, 좌표] render_with_liquid: false —

좌표

Unity에는 여러가지 좌표값이 존재하고 이 좌표값들을 변환하는 함수도 존재한다.

스크린 좌표

화면상의 픽셀 단위로 표현된 좌표로

일반적으로 좌상단이 (0,0)이고 우하단이 (화면 가로 길이, 화면 세로 길이)인 좌표 체계를 사용한다.

Input.mousePosition과 같은 함수는 스크린 좌표를 반환한다.

월드 좌표

게임 세계의 좌표 체계로, 게임 오브젝트가 게임 세계 내에서 위치하고 있는 좌표를 말한다.

transform.position은 월드 좌표이다.

뷰포트 좌표

카메라의 사각형 뷰포트에 대해서 정규화(nomalized)된 좌표이다.

좌하단이 (0,0)이고 우상단이(1,1)인 좌표 체계를 사용한다.

Camera.main

Unity에서는 메인 카메라가 게임 세계를 플레이어에게 보여주는 역할을 하기때문에 메인 카메라를 통해서 좌표를 변환할 수 있다.

using UnityEngine;
Vector3 mousePos = Camera.main.ScreenToWorldPoint(Input.mousePosition);
// 스크린 좌표를 월드 좌표로 변환
Vector3 viewportPosition = Camera.main.WorldToViewportPoint(transform.position);
// 월드 좌표를 뷰포트 좌표로 변환

화면 밖으로 나간 오브젝트를 파괴

using UnityEngine;
  Vector3 viewportPosition = Camera.main.WorldToViewportPoint(transform.position);

        if (viewportPosition.x < 0 || viewportPosition.x > 1 || viewportPosition.y < 0 || viewportPosition.y > 1)
        {
            Destroy(gameObject);
        }

뷰포트 좌표는 0,0 에서 1,1 이기 때문에 그 밖으로 나가는 오브젝트를 파괴하는 코드.



Unity Share Tweet +1