이번 강의에서는 3D 게임 개발의 기본 요소들을 이해하는 것을 목표로 한다.
이러한 요소들은 플레이어 움직임이나 오브젝트 반응 구현에 필수적이다.
같은 힘이라도, 어떻게 적용 하느냐에 따라 완전히 다른 결과가 나온다.
Rigidbody는 Unity에서 물리 기반 움직임을 제어할 때 필수적이며, ForceMode를 통해 힘이 어떻게 적용될지를 결정할 수 있다.
| ForceMode 종류 | 설명 | 사용 예 |
|---|---|---|
| Force | 지속적인 힘 적용 | 꾸준한 밀기 |
| Acceleration | 가속도로 적용 | 속도 점점 증가 |
| Impulse | 순간적인 힘 | 점프, 충돌 반응 |
| VelocityChange | 속도 변화 | 순간적인 방향 전환 등 |
클릭하거나 조준할 수 있는 대상은 모두 Raycast로 감지할 수 있다.
Ray ray1 = new Ray(transform.position, transform.forward); // 오브젝트 기준
Ray ray2 = Camera.main.ViewportPointToRay(new Vector3(0.5f, 0.5f, 0)); // 카메라 중앙
Ray ray3 = Camera.main.ScreenPointToRay(input.mousePosition); // 마우스 위치
if (Physics.Raycast(ray, out RaycastHit hit, 100f))
{
Debug.Log(hit.point);
}
Unity Input System에서는 코드와 에디터 모두 유연하게 입력을 처리할 수 있다.
void OnJump()
{
// 점프 동작
}
이번 강의에서는 앞으로 실습에 필요한 3D 공간 이해, 물리 제어, 상호작용 감지, 입력 처리 구조를 간단하게 정리해 보았다
특히 Raycast와 ForceMode는 많이 사용할 것 같아 실습을 통해 확실하게 알아둬야 겠다