본문 바로가기
모바일 개발/유니티

유니티 | 게임오브젝트와 프리팹

by KISCH 2020. 3. 6.
반응형


GameObject



⊢ 게임 내의 모든 오브젝트. 스스로 아무것도 하지 않음. 

⊢ 게임 오브젝트는 컨테이너. 각종 컴포넌트를 담을 수 있는 객체. 

⊢ 어떤 컴포넌트를 담고 있는지에 따라 카메라, 라이트, 모델 등 용도가 달라진다. 

⊢ 게임 오브젝트는 반드시 1개의 Transform 컨포넌트가 있어야 한다. 없으면 월드에 있을 곳이 없다. 

∟ 여러 개 등록 사용 가능. 정적 게임 오브젝트



유니티프리팹




Prefabs : 게임 오브젝트의 에셋화



⊢ 사용되는 가장 기본적인 요소들이 모여서 바로 사용할 수 있도록 포장된 한 개의 제품 개념

⊢ 오브젝트와 스크립트로 구성된 기본적인 요소

⊢ 프로젝트뷰에 저장된 재사용이 가능한 게임오브젝트.

⊢ 재사용할 수 있는 데이터의 틀을 만들기 위해서 오브젝트를 담아두는 빈 용기.

⊢ 게임 오브젝트에 구성된 기능들을 패키지화 시킨 어셋. 

⊢ Asset->Create->Prefab, 계층뷰에서 프로젝트뷰로 드래그, 계층뷰 원본이 인스턴스가 됨

ex) 몬스터 한마리 프리팹 -> 씬에서 다수 생성 사용 (하나만 수정시 전체 적용)

⊢ 패널자체를 프리팹화 시킬 수 있다. 

수정 시 원본에 다시 드래그 드랍





Prefab



⊢ 게임 오브젝트를 런타임에 인스턴스화

1. 코드 한 줄로 완전한 기능성

2. 씬 및 인스펙터에서 빠르고 쉽게 프리팹을 설치, 테스트, 수정

3. 인스턴스화에 사용한 코드를 변경하지 않고 인스턴스화 된 프리팹을 변경


⊢ asset의 한 타입, 프로젝트뷰에 저장된 재사용이 가능한 게임오브젝트

∟ 씬에 프리팹 추가할 때 그것의 instance를 만드는 것


생성

1. 비어있는 프리팹 생성

2. hierarchy view에 있는 게임 오브젝트를 드래그하여 프로젝트 뷰에 있는 프리팹에 넣는다


손자 게임 오브젝트는 편집이 안 되기때문

반대로, 부모 자식은 조정용 파라미터를 부모, 자식 레벨에 두고. 

메시 등 조정하면 안되는 파라미터를 손자레벨에 두고 관리


프리팹 인스턴스

프로젝트뷰에서 프리팹을 드래그 하여 씬이나 hierarchy view에 넣는다


inheritance

프리팹이 변화할 때 그 변화가 링크된 모든 게임 오브젝트에 적용되는 것을 의미


수정 : 프리팹을 Hierarchy 로 드래그(인스턴스화) -> 수정 후 인스펙터 창에 Apply (프로젝트의 프리팹 원본 변경)







반응형

댓글