하참이의 아이디어노트

Unity 강의 1일차 (5) - 프리미티브 구조 만들기 본문

Unity/Unity 기초

Unity 강의 1일차 (5) - 프리미티브 구조 만들기

하참이 2025. 1. 15. 05:50

본 강의는 다음 문서를 참고하여 제작하였습니다. 자세한 내용은 하단 문서를 참고하시거나 댓글로 질문 주시면 성심성의껏 답변해드리겠습니다.

 

https://learn.unity.com/tutorial/peurimitibeuro-gujo-mandeulgi?uv=2019.4&pathwayId=62c27b36edbc2a1cd6fae3aa&missionId=62d8af8aedbc2a352ecbdeb7&projectId=62d7b2fcedbc2a08e82c8ab7#

 

프리미티브로 구조 만들기 - Unity Learn

이 튜토리얼에서는 게임 오브젝트와 트랜스폼에 대해 배운 내용을 바탕으로 3D 프리미티브 기반의 구조물을 만들어 보겠습니다. 이 튜토리얼에서 배울 내용은 다음과 같습니다. 비어 있는 씬에

learn.unity.com

 


 

사실 이 강의를 작성하기 바로 전까지 프리미티브 구조가 무엇인지 저 역시 몰랐습니다.

 

 

프리미티브 구조는 복잡한 대상을 표현하기 위해 잘 정의된 기초 요소들을 모아서 구축하는 구조입니다.

 

 

 

네? 조금 더 풀어서 얘기하면 복잡한 구조체를 패턴화 해서 분석 후 분류 하는 방식이라 생각하시면 편할 것 같습니다.

 

아직도 모르시겠다구요? 그럼 일단 따라와보세요! 저희는 다음과 같은 구조를 만들 것 입니다.

 

 

 

 

 

 

 

 

단계는 다음과 같습니다.

 

1. 빈 게임 오브젝트 생성

2. 계단 제작

3. 벽면 제작

4. 지붕 제작

 

 

 

우선 빈 게임 오브젝트 부터 만들어볼까요? 지난번에 큐브를 만들었던 방식과 비슷하게 빈 게임 오브젝트를 만들겠습니다. (지난번에 만들던 큐브가 있다면 하이어라키창에서 클릭 후 Delete 혹은 우클릭 -> Delete로 제거합시다.)

 

하이어라키 창 우클릭 -> Create Empty

 

 

 

 

빈 게임 오브젝트를 만드는 이유는 무엇일까요? 애초에 왜 이런게 존재하는 걸까요? 주로 이 빈 게임 오브젝트를 만드는 이유는 여러 게임 오브젝트를 묶어서 표현하기 위해서 입니다.

 

예를 들어볼까요? 30명의 학생들을 묶어서 A 반으로 부르자고 합시다. A 반이라는 것은 실체가 있는 것 일까요? 아니죠. 그저 개념일 뿐 입니다. 저희가 만들 구조도 마찬가지 입니다. 계단과 벽면과 지붕으로 이루어져 있다 (또는 묶어져 있다. 둘 다 좋은 표현입니다.) 라는 것일 뿐 특별한 것은 없네요.

 

더 쉽게 표현하면 이후 제작할 작은 구조들을 담아서 정리하기 위한 하나의 폴더를 만든다고 생각하셔도 좋습니다.

 

 

 

빈 게임 오브젝트를 생성하고 클릭하면 Inspector 창에 해당 오브젝트의 정보를 볼 수 있습니다.

 

 

 

 

 

 

 

 

 

 

뭐가 뭔지 자세하게는 모르지만 대략적인 것들은 바로 알 수 있을 것 같습니다.

 

GameObject라 적혀있는 박스는 게임 오브젝트에 이름을 나타내는 것 같습니다. 이름을 Monument로 변경합니다. 이는 하이어라키창에서 F2를 누르거나 우클릭 -> Rename으로도 가능합니다.

 

 

 

 

 

 

 

 

 

 

다른건 제쳐두고 밑에 Transform이라 되어있는 것은 Position, Rotation, Scale... 딱 봐도 해당 게임 오브젝트의 형태를 조절할 수 있을 것 같습니다. 하지만 Position이 보기 좋지 않게 설정되어있네요.

 

해당 좌표를 0, 0, 0으로 변경하여 보기 좋게 만들어줍시다. 값이 변경됨에 따라 씬 뷰에서 오브젝트가 움직이는 것을 확인하면 더 좋습니다.

 

 

 

 

 

 

 

 

이제 계단을 만들어 봅시다.

 

지난번에 처럼 Cube 게임 오브젝트를 만들어봅니다. 단, 이번에는 아까 만든 Monument 아래에 만들 것 입니다. (이는 Monument의 자식으로 만들 것 입니다. 또는 Monument의 하위 오브젝트로 만들 것 입니다. 와 같은 뜻 입니다. 모두 자주 사용하는 표현이므로 익숙해집시다.)

 

 

Monument를 우클릭하고 3D Object -> Cube로 Monumnet 하단에 Cube를 생성해줍니다.

 

 

 

 

 

 

그리고 생성한 Cube의 이름을 Floor로 변경합니다. 설명은 생략하겠습니다.

 

 

 

Floor를 7개를 복사하여 총 8개가 존재하도록 합니다. GameObject의 복사는 Ctrl + D 로 합니다. 복사하기 전에 Floor의 Transform의 y를 0.2로 변경해둡시다.

 

 

 

 

 

 

 

이제 각 Floor의 Transform 값을 조절하여 계단처럼 시각화하겠습니다. 각 Transform 수치는 다음과 같습니다.

 

Floor
Floor(1)
Floor(2)

 


 

 

Floor(7)

 

 

 

 

완성하면 다음과 같은 모양이 생성됩니다.

 

 

 

 

여기서 감이 좋고 응용력이 좋은 학생이라면 해당 설명만 듣고 바로 프리미티브 구조를 완성하였을 것 입니다. 하지만 저는 감이 좋지 않기 때문에 설명을 더 이어나가도록 하겠습니다.

 

 

 

Monument 게임 오브젝트의 자식으로 다른  큐브 게임 오브젝트를 생성하고 이름을 Wall로 변경합니다. 설명은 생략하겠습니다.

 

 

 

 

 

인스펙터에서 아래와 같이 값을 변경합니다.

 

 

 

 

다음과 같은 벽이 생성됨을 확인할 수 있습니다.

 

 

 

 

 

 

 

벽 오브젝트도 복사 하여 나머지 기둥을 제작합니다. 단, 이번에는 Transform 값을 제공하지 않겠습니다.

 

 

 

 

 

 

 

 

이제 천장을 만들겠습니다. Monument 밑에 Platform의 이름을 가진 빈 게임 오브젝트를 생성합니다.

 

 

 

 

 

그리고 Floor 게임 오브젝트을 Platform으로 드래그하여 하위 오브젝트로 옮깁니다. Ctrl을 누른 상태로 클릭하면 여러개의 게임 오브젝트를 동시에 선택할 수 있습니다. 

 

 

 

 

 

 

Platform 오브젝트를 복사합니다. 그리고 복사한 또 하나의 Platform의 이름을 Roof로 변경합니다. 

 

 

 

 

 

마지막으로 Roof의 Transform 값을 조절하여 프리미티브 구조체를 완성해보세요!

 

 

 

 

 

 

 


 

 

자. 드디어 공부라고 할 만한 내용이 나왔습니다. 응용할 수 있고, 변경할 수 있는 내용이죠. 또한 이번에 했던 내용조차 더 깔끔하게 정리가 가능할 것이라 생각합니다. 

 

문제의 난이도는 어떠셨나요? 갑자기 뭔 문제야 하고 귀찮아 하시는 분들도 계셨을 것 입니다. 하지만 이후에 좋은 게임을 만들기 위해선 이런 일들은 수 없이 할 것 입니다. 지금부터라도 해서 익숙해져야 나중에 덜 스트레스를 받지 않을까요!

 

수고하셨습니다! 다음 강의에서 뵙겠습니다!