Day 2. 부모-자식 관계와 계층 구조
유니티에서 부모-자식 관계와 계층 구조를 이해하고 활용하는 방법을 배워 봅시다. 이 개념은 캐릭터 이동, 몬스터 생성 등 다양한 게임 기능에 사용됩니다.
Day 2. 부모-자식 관계와 계층 구조
1. 오늘 이걸 배우면 무엇을 할 수 있을까?
오늘은 유니티에서 부모-자식 관계와 계층 구조를 배워보겠습니다. 이 개념은 게임 개발에서 정말 중요해요. 왜냐하면, 게임 속에서 여러 오브젝트들이 서로 연결되어 동작할 때, 이 관계가 필수적이기 때문이에요. 예를 들어, 여러분이 RPG 게임을 만들고 있다고 상상해보세요. 플레이어 캐릭터가 아이템을 들고 다닐 때, 이 아이템은 캐릭터의 자식 오브젝트가 됩니다. 그래서 캐릭터가 움직일 때 아이템도 함께 움직이는 거죠. 이렇게 하면 코드가 간단해지고 관리가 쉬워집니다.
또한, 부모-자식 관계는 몬스터 생성에서도 유용하게 사용돼요. 몬스터가 그룹으로 등장할 때, 그룹의 리더가 부모가 되고 나머지 몬스터들이 자식이 됩니다. 이렇게 하면 그룹이 함께 이동하거나 특정 행동을 할 때 유리해요. 맵 구성에서도 마찬가지입니다. 예를 들어, 집을 구성할 때, 집이 부모이고 집 내부의
가구들이 자식이 될 수 있어요. 이렇게 하면 집을 이동시킬 때 가구들도 함께 이동하게 됩니다.
마지막으로, UI 구성에서도 부모-자식 관계는 필수적입니다. UI 패널이 부모가 되고, 그 안에 버튼이나 텍스트가 자식이 될 수 있어요. 패널을 숨기거나 표시할 때 자식 요소들도 함께 영향을 받게 되어 UI를 관리하기가 훨씬 쉬워집니다.
2. 오늘의 학습 목표
- 유니티 에디터에서 Hierarchy 창을 사용할 수 있다
- 부모-자식 관계를 설정할 수 있다
- 계층 구조를 이해하고 수정할 수 있다
- 오브젝트의 부모-자식 관계를 통해 연동된 움직임을 구현할 수 있다
3. 먼저 화면부터 맞춰보자
좋아요, 이제 유니티 에디터에서 화면을 맞춰보겠습니다. 먼저 유니티를 실행하고 프로젝트를 열어주세요. 만약 아직 프로젝트가 없다면, 유니티 허브에서 새로운 프로젝트를 생성해주세요.
- 상단 메뉴에서 Window를 클릭합니다.
- General을 선택한 다음 Hierarchy를 클릭하세요. Hierarchy 창은 화면 왼쪽에 나타납니다. 만약 보이지 않으면 이 과정을 다시 확인해주세요.
- Scene 창도 열어주세요. 상단 메뉴에서 Window → General → Scene을 클릭하시면 됩니다. Scene 창은 화면 중앙에 보일 거예요.
- Inspector 창도 필요합니다. 상단 메뉴에서 Window → General → Inspector를 클릭하세요. 이 창은 오른쪽에 위치합니다.
이렇게 각 창을 배치하면 화면 구성이 완료됩니다. 이제 본격적으로 실습을 시작해볼게요!
4. 개념을 아주 쉽게 설명해보기
유니티에서 부모-자식 관계를 이해하는 것은 마치 가족 관계와 비슷해요. 부모 오브젝트는 자식 오브젝트를 포함하고, 부모가 움직이면 자식도 함께 움직이는 구조입니다. 예를 들어, 여러분이 외출할 때 강아지를 데리고 나간다고 생각해보세요. 여러분이 부모고 강아지가 자식이라고 할 수 있어요. 여러분이 움직이면 강아지도 함께 움직이는 거죠.
유니티에서는 이런 관계를 Hierarchy 창에서 설정할 수 있습니다. 부모 오브젝트는 자식 오브젝트를 감싸는 역할을 하고, 자식 오브젝트는 부모의 동작에 따라 함께 행동합니다. 그래서 게임 내에서 여러 오브젝트가 함께 움직이거나 특정 행동을 할 때, 이 구조를 사용하면 훨씬 관리가 쉬워집니다.
이 관계를 설정하면 부모 오브젝트의 위치, 회전, 크기 변경이 자식 오브젝트에도 영향을 미칩니다. 예를 들어, 캐릭터가 무기를 들고 있다면, 캐릭터의 팔(부모)이 움직일 때 무기(자식)도 함께 움직이게 됩니다.
또한, 부모-자식 관계는 계층 구조를 통해 복잡한 장면을 쉽게 관리할 수 있게 합니다. 예를 들어, 집이라는 하나의 오브젝트 안에 여러 개의 자식 오브젝트(가구, 문, 창문 등)를 넣어둔다면, 집을 이동시키거나 복제할 때 자식들도 함께 처리할 수 있어요.
5. 실습 1: 그대로 따라 해보기
이제 실제로 부모-자식 관계를 만들어볼게요.
- Hierarchy 창에서 마우스 오른쪽 버튼을 클릭합니다. (Hierarchy 창은 화면 왼쪽에 있습니다. 보이지 않으면 상단 메뉴에서 Window → General → Hierarchy를 클릭하세요.)
- 나타나는 메뉴에서 Create Empty를 선택합니다.
- 새로 생성된 빈 오브젝트가 Hierarchy 창에 나타날 거예요. 이름은 "ParentObject"로 변경해볼게요. 이름을 변경하려면 오브젝트 이름을 천천히 두 번 클릭하시거나, 오른쪽 Inspector 창에서 이름을 변경할 수 있어요.
- ParentObject를 다시 마우스 오른쪽 버튼으로 클릭하고 Create Empty를 선택합니다. 이번에 생성된 오브젝트는 "ChildObject"로 이름을 변경해주세요.
- ChildObject를 드래그하여 ParentObject 위로 가져가 놓습니다. 이제 ChildObject는 ParentObject의 자식이 되었어요.
- ParentObject를 선택한 상태에서 Inspector 창의 Transform 컴포넌트에서 Position 값을 변경해보세요. 그러면 ChildObject도 함께 움직이는 것을 확인할 수 있습니다.
이렇게 해서 부모-자식 관계를 설정하고, 부모의 변화를 자식에게 반영하는 방법을 알아봤습니다.
6. 많이 헷갈려하는 부분 (중요)
-
문제: Hierarchy 창이 안 보여요 원인: 실수로 창을 닫았거나 다른 창에 가려져 있을 수 있습니다. 해결: 상단 메뉴에서 Window → General → Hierarchy 클릭
-
문제: 자식 오브젝트가 부모와 함께 움직이지 않아요 원인: 자식 오브젝트가 부모 오브젝트에 제대로 드래그되지 않았을 수 있습니다. 해결: Hierarchy 창에서 자식 오브젝트를 부모 오브젝트 위로 드래그하여 놓기
-
문제: 오브젝트 이름을 변경할 수 없어요 원인: 오브젝트 이름을 너무 빠르게 두 번 클릭했거나, 다른 창이 활성화되어 있을 수 있습니다. 해결: 오브젝트 이름을 천천히 두 번 클릭하여 이름을 변경하거나, Inspector 창에서 이름을 변경
7. 실습 2: 직접 확인해보기
이제 여러분이 직접 해보세요:
- Hierarchy 창에서 빈 오브젝트를 3개 만들어보세요.
- 각 오브젝트의 이름을 "Object1", "Object2", "Object3"로 변경해보세요.
- "Object2"를 "Object1"의 자식으로, "Object3"을 "Object2"의 자식으로 만들어보세요.
- Inspector 창에서 각 오브젝트의 Transform 값을 변경해보세요.
성공 기준: 각 오브젝트를 생성하고 이름을 바꾸고, 부모-자식 관계를 설정하고, Inspector에서 Transform 값을 변경할 수 있으면 성공입니다.
8. 오늘 배운 내용 정리
오늘 배운 부모-자식 관계와 계층 구조는 RPG 게임 개발에서 정말 유용하게 쓰입니다. 캐릭터 이동 시, 부모-자식 관계를 통해 캐릭터와 장비, 아이템이 함께 움직이도록 할 수 있습니다. 몬스터 그룹에서 리더와 부하 몬스터들을 설정하여 그룹 이동을 구현할 수 있고요. 또한, 맵 구성에서 복잡한 오브젝트들을 쉽게 관리할 수 있게 해줍니다. UI 구성에서도 패널과 버튼, 텍스트 등 자식 요소들을 관리하기 용이하죠.
9. 내일 예고
내일은 컴포넌트 기반 설계에 대해 배워보겠습니다. 오늘 배운 부모-자식 관계와 결합하여 게임 오브젝트를 더욱 효율적으로 관리하고, 다양한 기능을 추가할 수 있는 방법을 알아볼 거예요. 내일도 기대해주세요! 😊
Photo by Artem Beliaikin on Unsplash