차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판이전 판
다음 판
이전 판
unity:prefabs [2015/08/22 19:33] V_Lunity:prefab [2024/03/23 01:16] (현재) – [상속] V_L
줄 1: 줄 1:
 +{{tag>유니티 unity 프리팹 prefab}}
 +
 +======프리팹(Prefab)======
 +
 +''프리팹(Prefab; premade fabrication)''은  에셋(asset)으로서 저장되어 있는 재사용 가능한 ''게임오브젝트''로써 게임내 어디에서나 재사용될 수 있다.  프리팹은 여러 개의 씬에 추가될 수 있으며 씬당 여러 번 추가되어질 수 있다. 
 +[[learning_the_interface|
 +프로젝트 윈도우]]에 현재 프로젝트의 모든 프리펩이 표시된다. 
  
-======프리팹(Prefabs)======+프리팹을 씬에 삽입할 때 그것의 ''instance''가 생성되어 진다. 모든 프리팹 인스턴스들은 본래의 프리팹에 연결되어지며 근본적으로 본래의 프리팹의 복제가 되는 것이다. 프로젝트에 몇 개의 인스턴스가 있는지에 상관없이 프리팹이 수정되면 모든 인스턴스들에 그 변화가 적용된다.
  
-''프리팹(Prefab)''은 하나의 에셋(asset)으로  ''프로젝트 뷰''에 저장되어 있는 재사용 가능한''게임오브젝트''로써 프리팹은 여러 개의 씬에 추가될 수 있으며 씬당 여러 번 추가되어질 수 있습니다. 프리팹을 씬에 삽입할 때 그것의 ''instance''가 생성되어 집니다. 모든 프리팹 인스턴스들은 본래의 프리팹에 연결되어지며 근본적으로 본래의 프리팹의 복제가 되는 것입니다. 프로젝트에 몇 개의 인스턴스가 있는지에 상관없이 프리팹이 수정되면 모든 인스턴스들에 그 변화가 적용됩니다. 
  
 +[[unity:instantiatingprefabs]]도 참고한다.
  
 =====프리팹(Prefabs) 생성===== =====프리팹(Prefabs) 생성=====
  
-프리팹을 생성하기 위해서는 메뉴를 사용해서 새로운 빈 프리팹를 만들어야만 합니다. 이런 빈 프리팹은 게임오브젝트들을 포함하고 있지 않으며 인스턴스를 생성할 수도 없습니다. 새로운 프리팹은 게임오브젝트 데이터로 채워지기를 기다리고 있는 빈 컨테이너로서 생각할 수 있습니다.+프리팹을 생성하기 위해서는 메뉴를 사용해서 새로운 빈 프리팹를 만들어야만 다. 이런 빈 프리팹은 게임오브젝트들을 포함하고 있지 않으며 인스턴스를 생성할 수도 없다. 새로운 프리팹은 게임오브젝트 데이터로 채워지기를 기다리고 있는 빈 컨테이너로서 생각할 수 있다.
  
 {{:unity3d:NewPrefab.png}} {{:unity3d:NewPrefab.png}}
  
-//새로운 빈 프리팹. 게임오브젝트로 채워지기 전까지 인스턴스를 생성 할 수 없습니다//+//새로운 빈 프리팹. 게임오브젝트로 채워지기 전까지 인스턴스를 생성 할 수 없다//
  
-프리팹을 채우기 위해서는 씬에서 생성되어진 게임오브젝트를 사용합니다. +프리팹을 채우기 위해서는 씬에서 생성되어진 게임오브젝트를 사용다. 
-  - 메뉴바에서 **Assets->Create->Prefab** 을 선택하고 새로운 프리팹의 이름을 정합니다. +  - 메뉴바에서 **Assets->Create->Prefab** 을 선택하고 새로운 프리팹의 이름을 정다. 
-  - ''Hierarchy View''에서 프리팹에 만들어 넣고 싶은 게임오브젝트를 선택합니다. +  - ''Hierarchy View''에서 프리팹에 만들어 넣고 싶은 게임오브젝트를 선택다. 
-  - Hierarchy로 부터 게임오브젝트를 ProjectView안에 새로운 프리팹으로 끌어 놓기(Drag & drop)를 합니다.+  - 게임오브젝트를 Hierarchy로부터  ProjectView안으로 끌어 놓기(Drag & drop)를 다.
  
-위 과정을 수행한 후에 게임오브젝트와 모든 자식 객체들은 프리팹 데이타 안에 복사되어 집니다. 이제 프리팹은 여러 개의 인스턴스에서 재사용될 수 있습니다. Hierarchy안의 본래 게임오브젝트는 이제 프리팹의 인스턴스가 됩니다.+위 과정을 수행한 후에 게임오브젝트와 모든 자식 객체들은 프리팹 데이타 안에 복사되어 다. 이제 프리팹은 여러 개의 인스턴스에서 재사용될 수 있다. Hierarchy안의 본래 게임오브젝트는 이제 프리팹의 인스턴스가 다.
  
 =====프리팹 인스턴스(Prefab Instances)===== =====프리팹 인스턴스(Prefab Instances)=====
  
-현재의 ''씬'' 에서 프리팹 인스턴스를 생성하기 위해서는 프로젝트 뷰로 부터 씬 또는 Hierarchy View로 프리팹을 끌어 놓습니다. 그 인스턴스는 프리팹에 ''연결'' 되어지며 Hierarchy View에서 그것의 이름에 사용되어진 파란 텍스트로 표시되어 집니다.+현재의 ''씬'' 에서 프리팹 인스턴스를 생성하기 위해서는 프로젝트 뷰로 부터 씬 또는 Hierarchy View로 프리팹을 끌어 놓다. 그 인스턴스는 프리팹에 ''연결'' 되어지며 Hierarchy View에서 그것의 이름에 사용되어진 파란 텍스트로 표시되어 다.
  
 {{:unity3d:LinkedPrefab.png}} {{:unity3d:LinkedPrefab.png}}
  
-//세 개의 게임오브젝트들이 프리팹들에 연결되어 있고 한 개는 연결되어 있지 않습니다.//+//세 개의 게임오브젝트들이 프리팹들에 연결되어 있고 한 개는 연결되어 있지 않다.//
  
-  * 하나의 프리팹 인스턴스가 선택되어 있고 모든 인스턴스에게 영향을 미치는 변화를 주고자 한다면, 소스 프리팹(source Prefab)을 선택하기 위해 인스펙터에 있는 **Select** 버튼을 클릭합니다. +  * 하나의 프리팹 인스턴스가 선택되어 있고 모든 인스턴스에게 영향을 미치는 변화를 주고자 한다면, 소스 프리팹(source Prefab)을 선택하기 위해 인스펙터에 있는 **Select** 버튼을 클릭다. 
-  * 스크립트로 부터 프리팹들을 인스턴스화 하는 것에 대한 정보는 [[unity3d:Instantiating Prefabs]] 페이지에서 찾아 볼 수 있습니다.+  * 스크립트로 부터 프리팹들을 인스턴스화 하는 것에 대한 정보는  [[unity:instantiatingprefabs|]] 페이지에서 찾아 볼 수 있다.
  
 ====상속==== ====상속====
  
-상속(Inheritance)은 소스 프리팹(source Prefab)이 변할 때마다 이러한 변화가 모든 연결된 게임오브젝트들에게도 영항을 미친다는 것을 의미합니다. 예를 들어, 프리팹에 새로운 스크립트를 추가하면, 모든 연결된 게임오브젝트에게도 즉시 그 스크립트가 포함 되어질 것입니다. 그러나 모든 연결 관계를 온전히 유지하면서 하나의 인스턴스의 특성을 변화시킬 수 있습니다. 하나의 프리팹 인스턴스의 어떠한 특성을 변화시키면 그 변수의 이름이 굵은 글꼴로 표현되는 것을 보게될 것입니다. 그 변수는 이제 덮어 씌여(override) 진것입니다. 모든 덮어 씌여진(override) 특성은 소스 프리팹(source Prefab)에서의 변화에 영향받지 않을 것입니다.+[[unity:Inheritance|상속(Inheritance)]]은 소스 프리팹(source Prefab)이 변할 때마다 이러한 변화가 모든 연결된 게임오브젝트들에게도 영항을 미친다는 것을 의미다. 예를 들어, 프리팹에 새로운 스크립트를 추가하면, 모든 연결된 게임오브젝트에게도 즉시 그 스크립트가 포함 되어질 것다. 그러나 모든 연결 관계를 온전히 유지하면서 하나의 인스턴스의 특성을 변화시킬 수 있다. 하나의 프리팹 인스턴스의 어떠한 특성을 변화시키면 그 변수의 이름이 굵은 글꼴로 표현되는 것을 보게될 것다. 그 변수는 이제 덮어 씌여(override) 진것다. 모든 덮어 씌여진(override) 특성은 소스 프리팹(source Prefab)에서의 변화에 영향받지 않을 것다.
  
-이것은 프리팹 링크를 깨뜨리지 않으면서 그들의 소스 프리팹들로 부터 그들을 고유하게 만들기 위해 프리팹 인스턴스들을 변경시키는 것을 가능하게 합니다.+이것은 프리팹 링크를 깨뜨리지 않으면서 그들의 소스 프리팹들로 부터 그들을 고유하게 만들기 위해 프리팹 인스턴스들을 변경시키는 것을 가능하게 다.
  
 {{:unity3d:OverrideOff.png}} {{:unity3d:OverrideOff.png}}
줄 45: 줄 52:
 //여러개의 overrides(굵은 글씨체)가 이루어진 하나의 연결된 게임오브젝트// //여러개의 overrides(굵은 글씨체)가 이루어진 하나의 연결된 게임오브젝트//
  
-  * 소스 프리팹(source Prefab)을 갱신하고 모든 인스턴스들을 새로운 overridden 값들로 갱신하려면, 인스펙터에 있는 **Apply** 버튼을 클릭합니다. +  * 소스 프리팹(source Prefab)을 갱신하고 모든 인스턴스들을 새로운 overridden 값들로 갱신하려면, 인스펙터에 있는 **Apply** 버튼을 클릭다. 
-  * 어떤 특정 인스턴스의 모든 overrides를 제거하기 위해서는 **Revert** 버튼을 클릭합니다.+  * 어떤 특정 인스턴스의 모든 overrides를 제거하기 위해서는 **Revert** 버튼을 클릭다.
  
 ====프리팹 연결의 파괴와 복구==== ====프리팹 연결의 파괴와 복구====
  
-하나의 인스턴스와 그것의 소스 프리팹(source Prefab)사이의 연결을 끊는 특정한 방법들이 있지만 그 연결은 항상 다시 복구될 수 있습니다. 그 연결을 파괴하는 방법들에는 다음과 같은 것들이 있습니다:+하나의 인스턴스와 그것의 소스 프리팹(source Prefab)사이의 연결을 끊는 특정한 방법들이 있지만 그 연결은 항상 다시 복구될 수 있다. 그 연결을 파괴하는 방법들에는 다음과 같은 것들이 있다:
  
   * 컴포넌트의 추가 또는 제거   * 컴포넌트의 추가 또는 제거
   * 자식 게임오브젝트의 추가 또는 제거   * 자식 게임오브젝트의 추가 또는 제거
  
-이러한 방법들은 연결을 파괴하는 것에 대한 주의/확인 메세지를 유발할 것입니다. 확인을 하면 연결은 파괴될 것이며소스 프리팹의 변화는 더이상 그 연결이 파괴된 인스턴스에 영향을 미치지 않을 것입니다. 그 연결을 복구하기 위해서는 그 인스턴스의 인스펙터에 있는 **Reconnect** 또는 **Apply** 버튼을 클릭하면 됩니다.+이러한 방법들은 연결을 파괴하는 것에 대한 주의/확인 메세지를 유발할 것다. 확인을 하면 연결은 파괴될 것이며소스 프리팹의 변화는 더이상 그 연결이 파괴된 인스턴스에 영향을 미치지 않을 것다. 그 연결을 복구하기 위해서는 그 인스턴스의 인스펙터에 있는 **Reconnect** 또는 **Apply** 버튼을 클릭하면 다.
  
-  * **Reconnect**는 소스 프리팹과 다른 점들을 모두 버릴 것입니다. +  * **Reconnect**는 소스 프리팹과 다른 점들을 모두 버릴 것다. 
-  * **Apply**는 소스 프리팹으로 모든 다른 것들을 복사할 것입니다. (그 후에 모든 다른 프리팹 인스턴스들로도) +  * **Apply**는 소스 프리팹으로 모든 다른 것들을 복사할 것다. (그 후에 모든 다른 프리팹 인스턴스들로도)
  
 =====불러오기한 프리팹(Imported Prefabs)===== =====불러오기한 프리팹(Imported Prefabs)=====
  
-에셋(Assets) 폴더에 하나의 메쉬 에셋(mesh asset)을 놓을 때, Unity는 자동으로 그 파일을 불러오고 그 메쉬밖의 하나의 프리팹과 유사하게 보이는 것을 생성합니다. 이것은 실제 프리팹이 아니고 단순히 그 에셋 파일 그 자체입니다. 에셋의 인스턴스화 등의 작업은 보통의 프리팹들에서 작업 시 존재 하지 않았던 제약을 만듭니다.  +에셋(Assets) 폴더에 하나의 메쉬 에셋(mesh asset)을 놓을 때, Unity는 자동으로 그 파일을 불러오고 그 메쉬밖의 하나의 프리팹과 유사하게 보이는 것을 생성다. 이것은 실제 프리팹이 아니고 단순히 그 에셋 파일 그 자체다. 에셋의 인스턴스화 등의 작업은 보통의 프리팹들에서 작업 시 존재 하지 않았던 제약을 만듭니다.
  
 {{:unity3d:PrefabsVsAssetIcons.png}} {{:unity3d:PrefabsVsAssetIcons.png}}
  
-//에셋 아이콘은 프리팹의 아이콘과 다른 것에 주목하세요//+//에셋 아이콘은 프리팹의 아이콘과 다른 것에 주목하//
  
-에셋은 보통 프리팹 대신 소스 에셋(source asset)에 연결된 게임오브젝트로서 씬에서 인스턴스화 됩니다. 구성요소(Components)들은 이런 게임오브젝트에서 정상적으로 추가되어 지고 제거되어 질 수 있습니다. 그러나 이것은 그 에셋 파일 자체에 데이터를 추가하는 것이기 때문에 그 에셋 자체에는 어떠한 변화도 적용할 수 없습니다. 재사용하고 싶은 어떤 것을 생성하고 싶다면 위 “Creating Prefabs"에 나타나있는 과정들을 실행 하면서 하나의 프리팹안에 에셋 인스턴스를 만들어야만 합니다.+에셋은 보통 프리팹 대신 소스 에셋(source asset)에 연결된 게임오브젝트로서 씬에서 인스턴스화 다. 구성요소(Components)들은 이런 게임오브젝트에서 정상적으로 추가되어 지고 제거되어 질 수 있다. 그러나 이것은 그 에셋 파일 자체에 데이터를 추가하는 것이기 때문에 그 에셋 자체에는 어떠한 변화도 적용할 수 없다. 재사용하고 싶은 어떤 것을 생성하고 싶다면 위 “Creating Prefabs"에 나타나있는 과정들을 실행 하면서 하나의 프리팹안에 에셋 인스턴스를 만들어야만 다.
  
-  * 하나의 에셋의 인스턴스를 선택했다면, 그 인스펙터의 **Apply** 버튼은 **Edit** 버튼으로 대체되어 집니다. 이 버튼을 클릭하면 에셋을 위한 편집 어플리케이션을 시작할 수 있습니다. (Maya 또는 Max)+  * 하나의 에셋의 인스턴스를 선택했다면, 그 인스펙터의 **Apply** 버튼은 **Edit** 버튼으로 대체되어 다. 이 버튼을 클릭하면 에셋을 위한 편집 어플리케이션을 시작할 수 있다. (Maya 또는 Max)
  
- 
-{{tag>유니티 unity 프리팹 prefab}} 
  
    * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.Prefabs|유니티코리아위키]] (CC BY-NC-SA 2.0)    * 출처: [[http://unitykoreawiki.com/index.php?n=KrMain.Prefabs|유니티코리아위키]] (CC BY-NC-SA 2.0)