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 이기 때문에 그 밖으로 나가는 오브젝트를 파괴하는 코드.