물리적 충돌을 위해 게임오브젝트의 모양을 정의하며 게임오브젝트의 표현인 메시와 똑같을 필요는 없다.
충돌체가 충돌상황에 있을 경우 유니티 충돌 메시지를 받아 상황을 확인한다.
public class UnityCollision : MonoBehaviour
{
// <유니티 충돌 메시지>
private void OnCollisionEnter(Collision collision)//충돌에 진입했을 때
{
Debug.Log("OnCollisionEnter");
}
private void OnCollisionStay(Collision collision)//충돌 중일 때
{
Debug.Log("OnCollisionStay");
}
private void OnCollisionExit(Collision collision)//충돌에서 벗어났을 때
{
Debug.Log("OnCollisionExit");
}
/************************************************************************
* 트리거 충돌체
*
* 하나의 충돌체가 충돌을 일으키지 않고 다른 충돌체의 공간에 들어가는 것을 감지
* 트리거가 겹침상황에 있을 경우 유니티 트리거 메시지를 받아 상황을 확인
************************************************************************/
// <유니티 트리거 메시지>
private void OnTriggerEnter(Collider other)//충돌에 진입했을 때
{
Debug.Log("OnTriggerEnter");
}
private void OnTriggerStay(Collider other)//충돌 중일 때
{
Debug.Log("OnTriggerStay");
}
private void OnTriggerExit(Collider other)//충돌에서 벗어났을 때
{
Debug.Log("OnTriggerExit");
}
// <레이어기반 충돌 감지>
// 게임오브젝트의 레이어를 활용하여 충돌체간의 충돌가능 여부를 설정 가능
// edit -> ProjectSettings -> Physics 에서 설정 가능
// <충돌체 종류>
// (1) 정적 충돌체 (Static Collider)
// Rigidbody가 없는 충돌체, 외부에 힘에 움직이지 않음
// 절대로 움직이지 않는 지형, 구성요소에 주로 사용
// (2) 리지드바디 충돌체 (Rigidbody Collider)
// Rigidbody가 있는 충돌체, 외부에 힘을 받아 움직임
// 충돌할 수 있으며 물리를 사용하는 게임 내 가장 흔히 사용되는 충돌체에 사용
// (3) 키네마틱 충돌체 (Kinematic Collider)
// Kinematic Rigidbody가 있는 충돌체, 외부의 힘에 반응하지 않음
// 움직이지만 외부 충격에는 밀리지 않는 물체(밀어내는 장애물, 미닫이문 등)등 에 사용
// kinematic 상태를 활성화/비활성화 하여 움직임 여부를 설정할 경우 사용
// <충돌체 상호작용 매트릭스>
// 편의상 정적충돌체(SC), 리지드바디충돌체(RC), 키네마틱충돌체(KC)로 표현
// 편의상 정적트리거(ST), 리지드바디트리거(RT), 키네마틱트리거(KT)로 표현
// 충돌시 충돌 메시지가 전송
// SC RC KC
// SC O
// RC O O O
// KC O
// 충돌시 트리거 메시지가 전송
// SC RC KC ST RT KT
// SC O O
// RC O O O
// KC O O O
// ST O O O O
// RT O O O O O O
// KT O O O O O O
}
게임월드를 플레이어에게 보여주는 장치로 하나의 씬에 카메라를 원하는 만큼 추가할 수 있다.
카메라가 렌더링하는 순서와 화면의 위치를 설정하며, 일부만 렌더링하도록 설정도 가능하다.
<주요 속성>
Clear Flags : 화면의 그리지지 않은 부분을 비울 방법을 선택
Background : 스카이박스가 없을 경우 여백 화면에 적용할 색상
Culling Mask : 카메라가 렌더링할 오브젝트의 레이어 선택
Projection : 카메라의 원근감 설정
Perspective : 카메라의 원근감을 적용
Orthographic : 카메라의 원근감 없이 적용
Clipping Planes : 렌더링을 시작 및 중지하기 위한 카메라부터의 거리
Viewport Rect : 카메라 뷰가 드로우될 화면의 위치를 나타내는 사각형
<시네머신 패키지>
카메라의 촬영위치를 선정하기 위한 기능이 구현된 패키지
시네머신 브레인 : 카메라에 부착되어 있으며 가장 우선순위가 높은 시네머신(촬영장소)으로 당겨짐
시네머신 : 촬영장소이자 이동방법, 촬영대상, 기타 효과에 대해 정의
게임월드에서 플레이어에게 들려주는 청각적인 요소이다.
소리를 듣는 AudioListener 컴포넌트와 소리를 발생시키는 AudioSource 컴포넌트를 사용하고
소리들의 결과를 믹스, 효과적용 및 마스터링 작업하는 Audio Mixer가 있다.
<Audio Listener & Source>
Audio Listener : 씬에서 주어진 오디오 소스로부터의 입력을 수신하여 사운드를 재생
주로 씬에서 카메라에 부착되어 있으며, 하나만 유지시킴
Audio Source : 씬에서 오디오 클립을 재생
오디오 클립을 재생하기 위한 다양한 오디오효과를 적용할 수 있음
<*Audio Mixer>
다양한 오디오 소스 믹스, 효과 적용 및 마스터링 작업진행
오디오의 그룹을 나누어 여러 효과를 적용하고 최종적으로 합치는 작업을 진행