반응형
Unity로 2D 게임을 만들다보면 카메라가 표시하는 화면 좌표에 대한 정보를 얻어야 할 때가 있습니다. 그럴 때 카메라가 표시하는 화면의 왼쪽(Left), 오른쪽(Right), 위(Top), 아래(Bottom), 전체 길이(Width), 전체 높이(Height) 등의 정보가 필요합니다.
아래 소스는 camera_ 변수에 화면을 표시하는 카메라를 설정하면 화면의 왼쪽(Left) x좌표, 오른쪽(Right) x좌표, 위(Top) y좌표, 아래(Bottom) y좌표 및 전체 길이(Width), 전체 높이(Height) 등을 얻는 간단한 소스 예제입니다.
예제 소스에서는 마우스 오른쪽 버튼을 누르면 해당 정보가 디버그로 표시하게 해놓았습니다.
참고로 해당 소스는 간단히 만든 관계로 camera_에 대한 null처리는 하지 않았습니다.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CameraBound : MonoBehaviour
{
public Camera camera_ = null;
private float size_y_;
private float size_x_;
public float Bottom
{
get
{
return size_y_ * -1 + camera_.gameObject.transform.position.y;
}
}
public float Top
{
get
{
return size_y_ + camera_.gameObject.transform.position.y;
}
}
public float Left
{
get
{
return size_x_ * -1 + camera_.gameObject.transform.position.x;
}
}
public float Right
{
get
{
return size_x_ + camera_.gameObject.transform.position.x;
}
}
public float Height
{
get
{
return size_y_ * 2;
}
}
public float Width
{
get
{
return size_x_ * 2;
}
}
void Start()
{
size_y_ = camera_.orthographicSize;
size_x_ = camera_.orthographicSize * Screen.width / Screen.height;
}
void Update()
{
if (Input.GetMouseButtonDown(1))
{
string msg =
string.Format("스크린 좌표: ({0}, {1}) ~ ({2}, {3}) : {4} x {5}",
Left, Top, Right, Bottom, Width, Height
);
Debug.Log(msg);
}
}
}
반응형
'개발 라이브러리 & 툴 > 유니티' 카테고리의 다른 글
Unity 안드로이드 개발시 알아두면 좋은 것들 (0) | 2021.12.27 |
---|---|
Unity 안드로이드 빌드 시 화면 멈춤(Freezing) 현상 해결 (0) | 2021.12.26 |
Unity 여러 개의 카메라를 이용하여 여러 개의 포스트 이펙트 적용하기 (0) | 2021.12.03 |
Unity 개발시 편집 중인 텍스트나 csv파일 데이터를 게임에서 읽기 (0) | 2021.11.26 |
Unity 씬 이동 간에 빈 이동 씬을 이용하여 최대 사용 메모리 줄이기 (0) | 2021.11.23 |
Unity 스크립트 수정 후 스크립트 관련 대화상자 뜨는 시간 줄이기 (0) | 2021.10.29 |
Unity 정적(Static)객체를 전역 변수처럼 활용하기 (0) | 2021.10.22 |
Unity 싱글톤(Singleton)의 이해 (0) | 2021.10.21 |