
Unity’s prefab system allows you to create, configure, and store a GameObject complete with all its components, property values, and child GameObjects as a reusable asset. The prefab asset acts as a template from which you can create new prefab instances in the Scene
-> prefab 시스템은 유니티 내에서 특정 오브젝트의 components,property values, child 오브젝트의 값을 재사용이 가능한 에셋으로 생성, 구성 및 저장이 가능하다.
소위 특정오브젝트들을 템플릿화 시켜서 다른씬이나 혹은 여러개를 복사하여 사용하도록 만들어둔 시스템이다.
-prefab editing mode에서 프리팹의 설정을 변경할경우 프리팹으로 생성한 모든 인스턴스 들의 값이바뀐다 (오버라이딩)
또한 project창의 prefab을 더블클릭시 단독 수정모드가 발동하여 프리팹말고 프리팹 단하나만 보이며 수정이 가능하고, instance의 inspector창에서 open키를 사용하여 열 경우 씬 내의 다른 오브젝트들의 모습이 보여 환경에 영향을 받을 경우 좀 더 디테일한 수정이 가능하다. (씬내의 다른 오브젝트들을 변경할 수는 없다.)
Common uses for prefabs include: 통상적인 프리팹의 사용.
-(프리팹을 만드는것은 hierachy창 내의 gameObject를 project창으로 드래그 할 시 생성된다.)
참고: https://docs.unity3d.com/6000.0/Documentation/Manual/prefabs-introduction.html
결과물

Unity에서 렌더링은 Materials, Shaders 및 Textures를 사용하여 수행됩니다.
Unity에서는 머티리얼, 셰이더 및 텍스처 간에 긴밀한 관계가 있습니다.
Materials은 사용되는 텍스처에 대한 레퍼런스, 타일링 정보, 컬러 틴트 등을 포함한 표면 렌더링 방법의 정의입니다. 머티리얼에 대해 사용 가능한 옵션은 머티리얼에 사용하는 셰이더에 따라 달라집니다.
Shaders는 조명 입력과 머티리얼 설정에 따라 렌더링된 각 픽셀의 컬러를 계산하는 수학적 계산식 및 알고리즘이 포함된 작은 스크립트입니다.
Textures는 비트맵 이미지입니다. 머티리얼에는 텍스처에 대한 레퍼런스가 포함될 수 있으므로 머티리얼의 셰이더는 오브젝트의 표면 컬러를 계산하면서 텍스처를 사용할 수 있습니다. 텍스처는 오브젝트 표면의 기본 컬러(알베도)와 함께 머티리얼 표면의 반사도 또는 거칠기 등의 기타 여러 측면을 나타낼 수 있습니다.
머티리얼은 사용할 특정 셰이더를 하나 지정하고 사용되는 셰이더에 따라 머티리얼에서 사용 가능한 옵션이 결정됩니다. 셰이더는 사용할 것으로 예상되는 하나 이상의 텍스처 변수를 지정하고, Unity의 머티리얼 인스펙터에서는 이러한 텍스처 변수에 사용자 자신의 텍스처 에셋을 할당할 수 있습니다.
예를들어, 캐릭터, 풍경, 환경, 솔리드 및 투명 오브젝트, 딱딱하고 부드러운 표면 등을 의미하는 대부분의 노멀 렌더링에는 일반적으로스탠다드 셰이더가 가장 좋은 선택입니다. 스탠다드 셰이더는 커스터마이즈하기가 매우 용이하여 많은 표면 타입을 매우 현실적으로 렌더링할 수 있는 셰이더입니다.
그 외에 액체, 나뭇잎, 굴절 유리, 파티클 효과, 카툰 효과, 일러스트 또는 기타 미술 효과나 나이트 비전, 히트 비전, X-레이 비전 등의 기타 특수 효과처럼 다른 빌트인 셰이더나 심지어 사용자 작성 셰이더가 적합한 상황도 있습니다.
-> Material은 랜더링 즉 물체가 보여지는 형태를 쉐이더와 텍스쳐와 함께 정의내린다. 여기서 texture는 그 물체에 그려질 비트맵이미지 즉 이미지를 정의내리고 material은 shader와 함께 물체의 표면재질/투명도/빛의 반사영향 등등 물체가 표현되는데 필요한 모든것을 정의내린다.
참고 : https://docs.unity3d.com/kr/530/Manual/Shaders.html
Rigidbody 는 GameObject 가 물리 제어로 동작하게 합니다. 리지드바디는 힘과 토크를 받아 오브젝트가 사실적으로 움직이도록 해줍니다. 리지드바디가 포함된 모든 게임 오브젝트는 중력의 영향을 받아야 하며 스크립팅을 통해 가해진 힘으로 움직이거나 NVIDIA PhysX 물리 엔진을 통해 다른 오브젝트와 상호 작용해야 합니다.
리지드바디를 사용하면 게임 오브젝트의 동작이 물리 엔진으로 제어됩니다. 따라서 사실적인 충돌과 다양한 조인트 타입 같은 동작이 가능해집니다. 리지드바디에 힘을 더해서 게임 오브젝트를 조작하면 Transform 컴포넌트 를 직접 조정할 때와 느낌과 모양이 상당히 다릅니다. 일반적으로 동일한 게임 오브젝트의 리지드바디와 트랜스폼을 모두 조작하지 않고 둘 중 하나만 조작해야 합니다.
트랜스폼 조작과 리지드바디 조작의 가장 큰 차이점은 힘의 사용입니다. 리지드바디는 힘과 토크를 받을 수 있지만 트랜스폼은 그렇지 않습니다. 트랜스폼도 트랜스폼되고 회전할 수는 있지만 물리를 사용할 때와는 다릅니다. 한 번 직접 해보면 그 차이가 보일 것입니다. 리지드바디에 힘/토크를 더하면 오브젝트 Transform 컴포넌트의 포지션과 회전을 바꿉니다. 그러므로 둘 중에서 하나만을 사용해야 하는 것입니다. 트랜스폼을 바꾸면서 물리를 사용하면 충돌 및 기타 연산에 문제가 발생할 수 있습니다.
리지드바디는 물리 엔진의 영향을 받기 전에 게임 오브젝트에 명시적으로 추가되어야 합니다. 메뉴의 Components->Physics->Rigidbody 에서 선택한 오브젝트에 리지드바디를 추가할 수 있습니다. 이제 오브젝트에 물리 연산이 일어날 수 있게 된 것입니다. 중력의 영향을 받고 스크립팅을 통해 힘을 받을 수 있지만 원하는 대로 정확하게 동작시키려면 Collider 나 조인트를 추가해야 합니다.
콜라이더는 리지드바디의 물리적 경계를 정의합니다.
콜라이더는 충돌이 일어나게 만들기 위해 리지드바디에 함께 추가해야 하는 또 다른 유형의 컴포넌트입니다. 두 개의 리지드바디가 서로 충돌하더라도 두 오브젝트 모두 콜라이더가 추가되어 있지 않으면 물리 엔진은 충돌을 연산하지 않습니다. 콜라이더가 없는 리지드바디는 물리 시뮬레이션 동안 서로를 지나쳐가기만 합니다.
Gizmo Handle Position Toggles 는 트랜스폼 도구 기즈모의 위치와 기즈모 자체를 조작하는 데 사용하는 핸들의 위치를 정의하는 데 사용됩니다.
Pivot 을 선택하면 기즈모의 위치가 메시의 실제 피벗 지점으로 지정됩니다. (Asset이나 Prefab등 실제 게임오브젝트를 생성할때 지정해둔 위치로 기즈모를 설정한다.)
Center 를 선택하면 기즈모 위치가 게임 오브젝트에 렌더링된 경계의 가운데로 지정됩니다.(게임오브젝트가 랜더링 된 중심을 기준으로 기즈모를 설정)
Local 을 선택하면 기즈모가 계속 게임 오브젝트를 기준으로 회전합니다.
Global 을 선택하면 기즈모가 월드 공간 방향으로 고정됩니다.
기즈모 는 씬에 있는 게임 오브젝트와 연관된 그래픽스입니다. 일부 기즈모는 게임 오브젝트가 선택된 경우에만 Unity 에디터가 그리고, 그 외의 기즈모는 선택된 게임 오브젝트에 관계없이 그립니다. 기즈모는 일반적으로 비트맵 그래픽이 아니라 코드를 사용하여 그려지는 와이어프레임이며, 상호작용할 수 있습니다. Camera 기즈모와 Light direction 기즈모(아래 그림 참조)는 모두 빌트인 기즈모의 예이며, 스크립트를 사용하여 원하는 기즈모를 직접 만들 수도 있습니다. 카메라에 대한 자세한 내용은 절두체의 이해 문서를 참조하십시오.
일부 기즈모는 참조용으로 표시되는 패시브형 그래픽 오버레이입니다(예를 들어, 광원의 방향을 나타내는 Light direction 기즈모). 그 외의 기즈모(예: 클릭하고 끌어서 AudioSource의 최대 범위를 조정할 수 있는 AudioSource spherical range 기즈모)는 인터렉티브형입니다.
Move, Scale, Rotate 및 Transform 툴도 인터렉티브형 기즈모입니다.
-> 기즈모는 3d 뷰포트 상에서 물체를 선택/이동/회전/스케일링 등의 변형에 사용되는 도구로써 특정 오브젝트를 선택시에 나타나며 기즈모 유니티함수를 사용하여 몬스터들의 감지범위라던가 패턴등등 디버깅시에도 유용하게 사용이 가능하다.
gizmo 참고 : https://docs.unity3d.com/kr/2018.4/Manual/GizmosMenu.html