[ Transform ]
위치 정보처리를 위한 컴포넌트 ( Empty Object도 이 Component는 필수적으로 가지고 있음)
[ Mesh ] 관련
[ Mesh Filter ] : Mesh Data(삼각 폴리곤에 대한 정보) 관리를 위한 컴포넌트
[ Text Mesh ] : Text 출력을 위한 컴포넌트
[ Mesh Renderer ] : Material을 가지고 실질적인 Rendering 위한 컴포넌트(Mesh의 표현 방식)
[ Effects ] 관련
Unity Reference - http://docs.unity3d.com/Documentation/Components/comp-Effects.html
[ Particle System ] : Particle관련한 컴포넌트
[ Trail Renderer ] : GameObject가 이동할 시 이동한 흔적(Trail)을 남기고자 할 때 사용 ( ex> 터치 드래그 남기기 )
예> 검이나 무기류에 꼬리 달린 이펙트
http://docs.unity3d.com/Documentation/Components/class-TrailRenderer.html
[ Line Renderer ] : 다양한 라인(Mesh를 이용한) 관련 컴포넌트
Unity Reference - http://docs.unity3d.com/Documentation/Components/class-LineRenderer.html
[ Lens Flare ] : 빛이 카메라 방향으로 날아오는 듯한 느낌의 처리를 위한 이펙트
Unity Reference - http://docs.unity3d.com/Documentation/Components/class-LensFlare.html
[ Halo ]: 후광 표현을 위한 이펙트
Unity Reference - http://docs.unity3d.com/Documentation/Components/class-Halo.html
[ Projector ]
[ Legacy Particles ]
Unity Reference - http://docs.unity3d.com/Documentation/Components/comp-ParticlesLegacy.html
3.5 버전 이전에 사용되었던 Particle System
Effect 관련 참고사이트
http://blog.naver.com/ahnbinn?Redirect=Log&logNo=90169174079
[ Physics ] 관련: 물리와 관련된 컴포넌트
Unity Reference - http://docs.unity3d.com/Documentation/Components/comp-DynamicsGroup.html
[ Rigidbody ]
Unity Reference - https://docs.unity3d.com/kr/current/Manual/class-Rigidbody.html
유니티는 Box2D와 NVIDIA사의 PhysX 물리 엔진을 내장하고 있음
Rigidbody는 플레이어가 밀쳐낼 수 있는 것들, 즉 상자나 흔들리는 물체 등등에 적용할 수 있음
즉, 물리엔진에 영향을 받는 컴포넌트로 중력, 공기저항, 회전마찰계수 등의 속성을 가지고 있음
Mass : 물체의 질량. 질량이 작을수록 더 빨리, 더 멀리 움직인다
Drag : 마찰 계수, 선형 운동 저항. 바닥이나 공기에 대한 저항도로 이 값이 크면 속도가 떨어진다.
Angular Drag : 회전 마찰 계수, 회전 운동 저항. 공이 굴러갈 때의 저항력으로 이 값이 0이면 한없이 굴러간다.
Use Gravity : 중력 사용 여부
Is Kinematic
관절과 연결된 부분임을 명시적으로 물리엔진에게 알림으로써, 독자적인 물리효과가 적용되지 않도록 한다. 또한, HingeJoint를 통해 Animation을 가질 수 있음
Kinematic Rigidbody가 사용되는 세가지 경우
종종 물리 엔진의 법칙대로 움직이고 있는 물체를 특정 애니메이션이나 스크립트에 따라 움직이고 싶을 때가 있다. 예를 들어 랙돌Ragdoll로 쓰기 위해 강체로 된 뼈대를 조인트로 연결해놓은 애니메이션 캐릭터가 있다 치자. 우선 이 캐릭터는 특정 애니메이션들에 의해 움직이게 되는데, 그 동안에는 이것을 키네마틱으로 설정해두게 될 것이다. 하지만 플레이어가 이 캐릭터를 때리면, 순간 물리엔진의 영향을 받는 랙돌로 변하면서 쓰러지거나 날아가게 하고 싶을 것이다. 이 경우, 간단히 해당 캐릭터의 isKinematic 속성을 꺼주면 된다.
키네마틱 강체는 다른 강체와 동시에 움직여야 하는 상황에서 더 잘 동작한다. 예를 들어 움직이는 발판이 있고 그 위에 강체로 된 상자를 올려놓고 싶을 경우, 이 발판은 강체 없이 충돌자Collider만 붙여서 만드는 대신 키네마틱 강체를 적용해 만들어야 한다.
키네마틱 강체를 일정한 방법으로 애니메이션 시키는 동안, 관절을 이용해 실제 강체를 거기에 붙여 끌려다니게 하고 싶을 때가 있다.
Interpolate : 렌더링 프레임을 부드럽게 보이게 하기 위한 보간 기능
Interpolate : 이전 프레임의 위치기반으로 보간
Extrapolate : 다음 프레임 위치를 예상해서 보간, 즉 강체의 속력을 활용해 위치를 보간
Collision Detection : 충돌 감지 방식
Discrete : 일반적인 감지 방식
Continuous : (Rigidbody가 없는) 고정(static) 메쉬 충돌체에 대해서 연속 충돌 감지 방식(Continues Collision Detection)을 수행하고, Continuous Dynamics로 설정된 Rigidbody는 Continuous로 설정된 Rigidbody애 대해 연속 충돌 감지 방식(Continues Collision Detection)을 수행한다. 다른 Collider들은 제한적인 충돌 감지(Discrete Collision Detection)를 수행함 (물리 퍼포먼스에 많은 영향을 줌, 되도록 Discrete를 쓰는 것을 권장) - 빠른 움직임에 따라 Collider를 서로 관통해 버리는 것을 방지하기 위해 사용됨
Continuous Dynamics : 고정 메쉬 충돌체와 Continuous Dynamic과 Continuous로 설정한 리지드바디에 대해 연속감지방식을 사용해 충돌 탐지, 다른 모든 것들은 Discrete Collision Detction을 수행
Constraints : 물리적인 영향을 받고 싶지 않은 좌표계(x,y,z)를 설정
Freeze Position : 이동을 막음
Freeze Rotation : 회전을 막음
Static Colliders(정적 충돌자)
정적 충돌자는 많이 움직여다닐 필요가 없는 레벨 배경용 기하물체 등등에 사용된다.
이미 존재하는 그래픽용 메쉬에는 메쉬 충돌자Mesh Collider를 추가하게 된다.
(메쉬를 처음 임포트 할때 임포트 셋팅에서 충돌자 생성Generate Colliders 체크박스 옵션을 켜주면 더욱 좋다)
정적 충돌자라도 여전히 움직여다니게 할 수 있긴 하지만, 이를 자주 움직여야 할 경우엔 키네마틱 강체를 쓰고 싶을 것이다.
정적 충돌자 대신 키네마틱 강체를 쓰고 싶어질만한 두 가지 이유가 있다 :
키네마틱 강체는 다른 강체와 충돌할 경우 그 강체의 (잠재워져 있던) 물리엔진 적용을 깨울 수가 있다.
키네마틱 강체는 자기 위에 올려져있는 다른 강체들에 마찰력을 적용할 수가 있다.
[ 참고 : Physics Material ]
물리 매질로 충돌체 표면의 마찰과 반동을 설정하는데 사용되는 애셋
유니티에서는 물리 재질과 관련해서 Physics Materials 패키지를 기본적으로 제공하고 있음
Dynamic Friction : 물체의 면에 작용하는 마찰력.
Static Friction : 물체의 정지 마찰력
Bounciness : 충돌이 일어날 때의 반동
Friction Combine : 다른 물리 재질과 충돌할 경우 최종 마찰력 설정
Bounce Combine : 다른 물리 재질과 충돌할 경우 반동 설정
Friction Direction2 : 특정 방향으로 마찰력을 다르게 설정하고 싶을 때 방향 지정
Dynamic Friction2 : 추가된 방향에 대해 별도의 운동 마찰력을 지정
Static Friction2 : 추가된 방향에 대해 별도의 정지 마찰력을 지정
[ Character Controller ]
Unity Reference - http://docs.unity3d.com/Documentation/ScriptReference/CharacterController.html
http://docs.unity3d.com/Documentation/Components/class-CharacterController.html
http://unitykoreawiki.com/index.php?n=KrMain.class-CharacterController
CharacterController : Rigidbody 기능 + Collider 기능
Rigidbody요소를 완벽하게 가지고 있지는 않으며, 필요하면 Rigidbody를 추가해서 사용
상속 : Collider->Component
Variables
isGrouded
Slope Limit : Controller가 올라갈 수 있는 경사도
Step Offset : 이 값 이하에 있는 계단을 올라 갈 수 있음
Skin Width :
두 Collider 간에 충돌이 있을 경우 Skin Width 값만큼의 간섭이 적용됨
값이 크면 떨림현상을 줄일수 있으나, 작으면 멈춤 현상이 발생할 수 있음
적당한 크기는 Radius의 10%라고 함
Min Move Distance : 지정된 값보다 적게 움직이려고 하면 움직여지지 않음(최상은 값을 0으로 남겨 놓는 것이라고 함)
Height : Controller 크기 조정
Radius : Controller 넓이 조정
Center : Controller의 위치 조정
Function
SimpleMove
Move
Message Sent
OnControllerColliderHit : 움직임이 있는 동안에 Collider가 Hit된 경우 동작
Inherited Messages Sent
<Collider> : 충돌 처리를 위한 컴포넌트
[ Sphere Collider ] - 구형sphere-shaped 물체에 사용되는 충돌자.
[ Box Collider ] - 상자형 물체에 사용되는 충돌자.
[ Capsule Collider ] - 캡술형(양 끝에 반구가 붙어있는 원통형) 물체에 사용되는 충돌자.
[ Mesh Collider ] - 충돌자로 그래픽에 사용되는 메쉬 형태를 그대로 가져다 사용할때.
[ Physic Material ] - 해당 물체의 물리적 성질(마찰력, 반발력 등)을 세부 조절하는데 사용.
<Cloth> : 옷감과 같은 재질을 시뮬레이션하도록 하는 컴포넌트
Unity Reference - http://docs.unity3d.com/Documentation/Components/class-InteractiveCloth.html
[ Wheel Collider ] - 지상을 달리는 차량을 만들때 사용되는 특수한 충돌자.
휠 충돌체가 회전력(Torque)을 전달받으면 휠 충돌체가 속한 차체의 리지드바디가 움직이게 됨
Mass : 휠의 질량
Radius : 휠의 반지름
Center : 충돌체의 중심
Suspension Distance : 서스펜션의 최대 확장 거리
Suspension Spring
서스펜션 스프링의 힘, 저항력,목표지점을 설정
서스펜션은 처음의 위치에 돌아 갈려는 힘 값
spring : 목표 지점에 도달하려는 힘으로 클 수록 서스펜션 목표지정에 더욱 빨리 도달
damper : 서스펜션 속도를 꺽는 힘으로 클 수록 서스펜션이 목표에 더욱 늦게 도달하도록 버팀
Forward Friction : 차의 진행 방향에 미치는 타이어의 마찰력
[ Skinned Cloth ] - 스키닝된 천을 만들때 사용됨.
[ Interactive Cloth ] - 물리 엔진으로 시뮬레이션되어, 게임 내에서 상호작용이 가능한 일반적인 천에 사용.
<Joint> : 두 강체(Rigidbody) 간의 연결 설정과 관련된 컴포넌트
[ Hinge Joint ] - 문의 경첩과 같이, 접히는 관절을 만들때 사용됨.
[ Spring Joint ] - 스프링같이 매달리는 관절을 만들때 사용됨.
[ Fixed Joint ] - 오브젝트끼리 묶어서 고정시킬때 사용됨. 계층 뷰에서 부모-자식 계층을 설정해는 것과 유사
[ Configurable Joint ] - 여러가지로 복잡한 관절 형태를 만들고자 할때 사용됨. (사용자가 직접 조인트를 설계)
[ Constant Force ]
Unity Reference - http://docs.unity3d.com/Documentation/Components/class-ConstantForce.html
강체에 지속적인 힘을 가하기 위한 유틸리티 컴포넌트.
로켓이나 기타 가속 기능을 넣는 데에 좋다.
[ Navigation ]
Unity Reference - http://docs.unity3d.com/Documentation/Components/comp-AIGroup.html
길 찾기와 관련된 Component로 두 지점 간에 있는 방해물을 피해 효율적으로 찾아갈 수 있도록 함
[ NavMesh Agent ]
Unity Reference - http://docs.unity3d.com/Documentation/Components/class-NavMeshAgent.html
[ Off-mesh links ]
Unity Reference - http://docs.unity3d.com/Documentation/Components/class-OffMeshLink.html
[ Navmesh Obstacle ]
[ Audio ] : 사운드,배경음악, 효과음 등의 음악 처리와 관련된 Component
Unity Reference - https://docs.unity3d.com/kr/current/Manual/Audio.html
[ Audio Listener ]
한 Scene에 한개의 Audio Listener가 필요함 (주로 카메라에 attach)
Audio Source가 재생되는 것을 Listen 하는 역할
[ Audio Source ]
Unity Reference - http://docs.unity3d.com/Documentation/ScriptReference/AudioSource.html
http://unitykoreawiki.com/index.php?n=KrMain.class-AudioSource
Audio Clip의 재생을 담당
Unity Reference - http://unitykoreawiki.com/index.php?n=KrMain.Sound
[ Audio Reverb Zone]
Unity Reference - http://docs.unity3d.com/Documentation/Components/class-AudioReverbZone.html
http://unitykoreawiki.com/index.php?n=KrMain.class-AudioReverbFilter
Audio Listener의 위치에 따라 Audio Source의 에코 영역의 설정
[ Rendering ] : 렌더링과 관련된 Component
Unity Reference - http://docs.unity3d.com/Documentation/Components/comp-RenderingGroup.html
[ Camera ]
[ ]
[ Sprite Renderer ]
Sprite : 출력할 스프라이트 이미지
Color : 이미지 색상에 더해지는 색상
Material :
Sorting Layer : Render되는 순서를 위한 Layer 이름
Order in Layer : Layer안에서도 Render 순서를 정함(숫자가 높을 수록 화면 앞에 출력)
[ Miscellaneous ] : Animation, Network View 관련 Component
[ Animator ]
Unity Reference - http://docs.unity3d.com/Documentation/Components/class-Animator.html
[ Animation ]
[ Scripts ] : Game의 로직적인 부분을 담당하는 부분으로 program 코딩과 관련된 Component