본문 바로가기
유니티

Bounds<경계> 구조체

by JunHDev 2024. 10. 20.

프로젝트를 진행하다가 특정 오브젝트의 Z축 끝부분에서 부터 포지션을 생성하게 되었다.
당시 Bounds 구조체를 몰랐으나 검색을 통해 알게 되어 기록을 하게 된다.

 

 

Bounds 구조체란?

=================================

Unity에서 객체의 경계를 알려주는 구조체이다. 

주로 3D 오브젝트의 크기와 위치를 계산하는데 주요 사용되는 구조체이며 

그 객체가 차지하는 **축 정렬 경계 상자(Axis-Aligned Bounding Box, AABB)**를 표현한다.

 

* 비대칭적인 메쉬를 포함한 오브젝트도 Bounds로 단순하게 감싸진다.

 

 

Bounds 구조체의 Property

=================================

 

1. center

* 경계 상자의 중심점 (world Space)

메쉬의 모양에 따라 차이가 있을 수 있다.

Bounds bounds = meshRenderer.bounds;

 

2. size

경계 상자의 전체 크기를 나타낸다.

* 각 축 (X,Y,Z)의 총 길이를 나타내는 Vector3 값이다.

Vector3 size = bounds.size;
Debug.Log($"Size: {size}"); // 예: (10, 5, 3)

 

3. extents 

* size 의 절반 크기를 의미한다.

Vector3 extents = bounds.extents;
Debug.Log($"Extents: {extents}"); // 예: (5, 2.5, 1.5)

 

4. min

* 경계 상자의 가장 작은 좌표이다.( AABB의 한쪽 모서리)

* (min.x, min.y, min.z) 값은 객체의 최소 지점을 나타냅니다.

 

Vector3 min = bounds.min;
Debug.Log($"Min: {min}"); // 예: (0, 0, 0)

 

5. max

* 경계 상자의 가장 큰 좌표.

* (max.x, max.y, max.z) 값은 객체의 최대 지점을 나타낸다.

 

Vector3 max = bounds.max;
Debug.Log($"Max: {max}"); // 예: (10, 5, 3)

 

 

 

특징

============================

Bounds의 특징은 월드 좌표계를 기준으로 경계를 계산한다.이때 지역 좌표료 변경하려면 transform의 메소드인 InverseTransformPoint(Bounds bounds)을 사용하면 컨버트가 가능하다.

 

 

Bounds 구조체를 이용해서 정확한 위치에 스폰하였다!

 

 

 

 

'유니티' 카테고리의 다른 글

오디오 믹서 (Aduio Mixer)  (1) 2025.09.14
Custom Editor  (0) 2025.08.30
스크립팅 백엔드  (2) 2025.03.30
RectTransformUtility  (3) 2025.03.19
RectTransformUntility에 대해서  (17) 2025.01.07