미디어 콘텐츠 스터디

02. 프리팹 사용하기 본문

가상현실(Virtual Reality)/가상현실 맛보기

02. 프리팹 사용하기

danmujicat 2021. 7. 9. 23:23

https://docs.unity3d.com/Manual/Prefabs.htmlUnity 매뉴얼에서 프리팹에 대한 자세한 내용을 읽을 수 있습니다.

 

간단한 기하학적 요소로 만든 간단한 재사용 가능한 모델을 만들어 이것이 어떻게 작동하는지 살펴보겠습니다.

 

1. 프리팹 생성 및 인스턴스화

BobHead라는 재사용 가능한 캐릭터 프리팹을 생성할 것입니다. 먼저 다음과 같이 몇 가지 원시 3D 개체로 작은 사람을 만들어 보겠습니다.

1.1 머리 만들기

Hierarchy에서 BobHead라는 이름의 빈 게임 오브젝트를 만듭니다

    (+ | Create Empty를 클릭하여 이름을 BobHead로 지정).

Position (3, 0.75, 1.25)과 같은 위치로 설정합니다.

머리에 대한 자식 구를 만듭니다 (BobHead를 마우스 오른쪽 버튼으로 클릭하고 3D Object | Sphere를 클릭).

    이름을 ‘Head’로 지정합니다.

Project에서 Materials / 폴더에서 BobHead Material이라는 새 머티리얼을 만들고 진한 파란색으로 만듭니다

    (: # 191963).

BobHead MaterialHead로 드래그합니다.

 

1.2 눈을 추가하기

자식 흰색 눈을 만들고 (BobHead를 마우스 오른쪽 버튼으로 클릭 한 다음 3D Object | Sphere를 클릭)

    이름을 ‘Eye’로 지정합니다.

Transform Position (0.15, 0.2, -0.35) Scale (0.15, 0.25,0.25)을 설정합니다.

ProjectMaterials / 폴더에서 이전에 만든 White Materia를 눈으로 끕니다.

눈을 복제합니다 (눈을 선택하고 Ctrl + D를 누름).

Transform Position X0.15로 변경합니다.

 

결과화면)

1.3. 프리팹 만들기

Project 창에서 Prefabs라는 새 폴더를 만듭니다

   (/ Assets /에서 마우스 오른쪽 버튼을 클릭 한 다음 Create | Folder를 클릭하고 이름을 Prefabs로 지정).

Hierarchy 창에서 BobHead GameObject를 클릭하고 방금 만든 Project 창의 Prefabs / 폴더로 드래그합니다.

 

1.4 BobHead 프리팹을 게임오브젝트의 템플릿으로 사용하기

BobHead 프리팹은 이제 다른 BobHead 게임 오브젝트의 템플릿으로 사용할 수 있습니다. 장면에 하나 이상을 추가 할 수 있습니다. 프리팹의 모든 인스턴스는 프리 팹의 속성을 상속합니다. 새 인스턴스를 추가하려면 프로젝트 창에서 장면으로 드래그하기만 하면됩니다.

Project 창에서 BobHead 프리팹을 클릭하고 장면 (장면보기 창 또는 계층 구조)으로 드래그 합니다.

원하는대로 배치되면 장면에 놓습니다.

몇 개 더 추가합니다.

 

결과화면)

다음 스크린 샷은 여러 BobHead 인스턴스가 있는 장면을 보여줍니다. 계층 구조에서 BobHead 개체는 프리팹 자산을 참조하기 때문에 파란색입니다.

이제 위치 및 크기 조정과 같이 원하는대로 인스턴스를 수정할 수 있습니다.

 

2. 프리팹 편집 및 재정의

프리팹을 수정할 수 있으며 모든 인스턴스가 업데이트됩니다. Project Prefabs / 폴더에서 BobHead 프리팹을 선택하고 Open Prefab을 선택하여 편집 할 수 있습니다 (또는 두 번 클릭). 지금은 먼저 장면 계층 구조에서 편집 한 다음 재정의를 적용합니다.

2.1 모자 추가하기

모자를 추가하려면 hierarchy에서 BobHead 오브젝트 중 하나를 선택하고

    마우스 오른쪽 단추를 클릭 한 다음 Create Empty을 선택한 다음 이름을 ‘Hat’으로 바꿉니다.

Position(0, 0.5, 0)으로 설정합니다.

Hat을 마우스 오른쪽 버튼으로 클릭하고 3D Object | CylinderHat의 자식으로 추가하려면

    실린더 이름을 ‘HatTop’으로 지정합니다.

Transform Scale(0.5, 0.1, 0.5)로 설정합니다.

ProjectMaterials / 폴더 (이 장의 앞부분에서 생성)에서 Red MaterialHatTop으로 드래그합니다.

Hat을 다시 오른쪽 클릭하고 3D Object | Cylinder를 하위로 추가하려면 실린더 이름을 ‘Brim’으로 지정합니다.

Transform Scale(0.75, 0.01, 0.75)로 설정하고 Position(0, -0.075, 0)으로 설정합니다.

ProjectMaterials / 폴더에서 Brim으로 Red Material을 드래그합니다.

Hat transformRotation (0, -15, 25) Position (-0.2, 0.5, 0)으로 조정합니다.

 

2.2 모자를 오브젝트 전체에 추가하기

BobHead 인스턴스 중 하나에 만 모자가 있습니다. 그들 각각도 하나를 갖기를 원한다고 가정하십시오. Hierarchy에서 BobHead 개체를 선택합니다. InspectorOverrides 드롭 다운을 확인하세요. 클릭하면 다음 스크린 샷과 같이 원본 프리 팹과 관련된 수정 사항이 표시됩니다.

재정의를 실제로 적용하려면 다음 단계를 수행하십시오.

Inspector에서 Overrides를 클릭합니다.

모두 적용을 누릅니다.

 

결과화면)

프리팹에는 자식 오브젝트가 포함될 수 있으므로 자식이 다른 프리팹이 될 수 있습니다.

이를 중첩된 프리 팹이라고하며 예상대로 작동합니다. 예를 들어 Hat 객체를 별도의 프리팹으로 만든 다음 BobHead 프리팹에 삽입 할 수 있습니다. 원래 자식 프리팹을 변경하면 해당 변경 사항이 부모 프리팹에 반영됩니다. 또한 프리 팹의 수정된 인스턴스는 별도의 프리팹 변형으로 저장할 수 있습니다. 이 경우 새 프리팹은 여전히 원래 프리팹을 참조하므로 원래 프리팹이 변경되고 해당 속성이 변형에 의해 재정의되지 않은 경우 변형 (및 모든 인스턴스)이 이러한 변경 사항을 상속합니다.

 

다음으로 Unity 외부에서 콘텐츠를 가져 오는 방법을 살펴 보겠습니다.

Comments