[TIL] 유니티(Unity) 3D 게임 개발의 기본 요소

백성은·2025년 5월 15일

TIL

목록 보기
25/34

✅ 학습한 주요 내용

이번 강의에서는 3D 게임 개발의 기본 요소들을 이해하는 것을 목표로 한다.

  • 스카이박스로 3D 환경의 배경 만들기
  • Rigidbody ForceMode로 다양한 물리 효과 제어
  • Ray와 Raycast로 상호작용 및
  • Input System의 이벤트 처리 방식 이해

이러한 요소들은 플레이어 움직임이나 오브젝트 반응 구현에 필수적이다.

✅ 스카이박스

스카이 박스란?

  • 게임 배경을 표현하는 큐브 형태의 환경 텍스처
  • 6개의 텍스처 큐브맵 또는 하나의 구체형 텍스터 방식으로 하늘, 산, 구름 등을 표현
  • Unity에서 배경에 적용 가능하며 시간대변경(낮/밤) 등의 이벤트에 활용 가능
  • 단, 성능에 영향을 줄 수 있어 최적화 중요

Unity에서 적용하는 방법

  • Window -> Rendering -> lighting -> Environment 탭에서 설정 가능
  • material 타입을 Skybox로 지정하여 할당

✅ Rigidbody의 Force Mode

같은 힘이라도, 어떻게 적용 하느냐에 따라 완전히 다른 결과가 나온다.

ForceMode 사용 목적

Rigidbody는 Unity에서 물리 기반 움직임을 제어할 때 필수적이며, ForceMode를 통해 힘이 어떻게 적용될지를 결정할 수 있다.

ForceMode 종류설명사용 예
Force지속적인 힘 적용꾸준한 밀기
Acceleration가속도로 적용속도 점점 증가
Impulse순간적인 힘점프, 충돌 반응
VelocityChange속도 변화순간적인 방향 전환 등

✅ Ray와 Raycast

클릭하거나 조준할 수 있는 대상은 모두 Raycast로 감지할 수 있다.

개념 이해

  • Ray : 시작점과 방향이 있는 가상의 직선
  • Raycast : 그 직선을 따라 충돌한 오브젝트가 있는지 감지

Ray 생성 예시

	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); // 마우스 위치

Raycast 결과 정보 (RaycastHit):

  • point : 충돌 지점
  • distance : 거리
  • transform : 충돌한 오브젝트
	if (Physics.Raycast(ray, out RaycastHit hit, 100f)) 
    {
    	Debug.Log(hit.point);
    }

✅ Input System

Unity Input System에서는 코드와 에디터 모두 유연하게 입력을 처리할 수 있다.

SencMessage 방식

  • On + ActionName 으로 자동 연결
  • 빠르지만 유지보수 어려움

예시

	void OnJump()
    {
    	// 점프 동작
    }

📝 느낀점

이번 강의에서는 앞으로 실습에 필요한 3D 공간 이해, 물리 제어, 상호작용 감지, 입력 처리 구조를 간단하게 정리해 보았다
특히 Raycast와 ForceMode는 많이 사용할 것 같아 실습을 통해 확실하게 알아둬야 겠다

profile
게임 개발일지

0개의 댓글