Notice
Recent Posts
Recent Comments
Link
반응형
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- 행동트리
- sparkmain(clone) 무한생성
- 유니티 sparkmain(clone)
- GetComponent
- articulation body
- dropdown
- unity korea
- 너비탐색
- removeAll
- 최소신장트리 mst
- 깊이탐색
- 드롭다운
- 오블완
- 습관형성 #직장인자기계발 #오공완
- Simulation
- readonly
- 티스토리챌린지
- navisworks api
- dfs
- 디지털트윈
- 트리구조
- list clear
- 유니티
- 크루스칼
- 최단거리 알고리즘
- unity sparkmain(clone)
- raycast
- Unity
- sparkmain(clone)
- C#
Archives
- Today
- Total
낑깡의 게임 프로그래밍 도전기
Unity Bounds로 오브젝트의 경계와 중심 구하기 본문
반응형
오브젝트의 모양이 복잡하더나 임의의 원점을 두거나 피벗이 오브젝트와 멀리 떨어져있는 상황에서 오브젝트의 위치를 찾아 컨트롤하기 힘든 경우가 생긴다
그럴 때 bounds를 활용하면 유용하다.
Bounds는 유니티에서 게임 오브젝트나 씬의 영역을 나타내는데 사용되는 개념( 오브젝트가 어떤 영역 안에 있는지를 쉽게 확인 가능)
예를 들어, 카메라가 어떤 오브젝트들을 비추고 있는지 확인하거나, 특정 영역 안에 어떤 오브젝트들이 있는지 확인할 때 유용함.
Bounds는 해당 영역의 중심점과 크기를 가지고 있어서 오브젝트들이 어디에 위치해 있는지와 그 크기를 파악하는 데 도움이 됨.
Bounds를 활용할 때 유용한 몇 가지 키워드
- Bounds.center: Bounds의 중심점을 나타내는 벡터.
- Bounds.size: Bounds의 크기를 나타내는 벡터.
- Bounds.extents: Bounds의 각 축별로 크기의 절반을 나타내는 벡터. 크기의 절반을 의미하기 때문에 실제 크기의 반지름과 같다고 볼 수 있어.
- Bounds.Contains(): 특정 지점이나 다른 Bounds를 포함하는지 확인하는 메서드.
- Bounds.Encapsulate(): 다른 Bounds나 지점을 포함하여 현재 Bounds를 확장시키는 메서드.
- Bounds.Intersects(): 다른 Bounds와 교차하는지 여부를 확인하는 메서드.
이런 키워드들을 활용해서 Bounds를 더 효과적으로 다룰 수 있음
나의 경우에는 많은 자식오브젝트를 가진 모델링이 있었고 원점(피벗)은 굉장히 멀리 있었다.
오브젝트를 생성하고 그 오브젝트 근처로 카메라를 설치하고 싶었으나 카메라의 트렌스폼 조정이 힘들었고
레이로 쏘기에는 한계가 있다고 판단하였다.
처음엔 모든 메쉬콜라이더를 불러와서 중심점을 계산해서 배치하려했으나 수많은 자식들이 겹치면서 계산이 깔끔하게 되지 않아 임의의 첫번째 자식과 마지막 자식의 중간점을 찾아서 배치하도록하였다.
반응형
'Unity C#' 카테고리의 다른 글
| Unity C# : 다양한 세이브(Save) 기능 옵션 소개 (0) | 2024.06.10 |
|---|---|
| Unity C# : Lock (잠금) 메커니즘 / 동기화 메커니즘 (0) | 2024.05.30 |
| 정적라이브러리와 동적라이브러리의 장단점 (0) | 2024.05.22 |
| Unity C# List 초기화 Clear와 RemoveAll 차이 (0) | 2024.05.20 |
| Unity 커맨드 패턴(Command Pattern) (0) | 2024.05.20 |