Physics Puzzle

이준영·2025년 9월 5일

주제 : 다양한 물리 기반 상호작용을 통해 퍼즐을 풀어나가는 창의적인 3D 퍼즐 게임
개발 기간 : 2025.05.26. ~ 2025.06.02.
개발 인원 : Unity(5명)
사용 기술 : Input System, Cinemachine, URP
Github : https://github.com/leejy1685/ThreeDevelopmentADay

Physics Puzzle

주제 선택 사유

  • 유니티 숙련 주차에서 배운 3D 프로젝트 기술을 활용하기 위해서 퍼즐 게임 선택.
  • 참고 게임 : "포탈"

기술 스택

Input System, Cinemachine, URP

기술적 의사결정

Input System

  • 사용 이유 : 더 유연하고 확장 가능한 입력 처리 시스템을 구축하기 위해서입니다.
  1. 액션 기반의 입력 처리
    • Input System은 액션(Action)을 중심으로 입력을 처리합니다.
    • 특정 키가 아닌 행동(Action)을 기준으로 코드를 작성하게 되어 코드가 더 깔끔하고 이해하기 쉬워집니다.
  2. 비동기식 입력 처리
    • 새로운 시스템은 비동기식으로 입력을 처리하여 성능 저하 없이 여러 입력을 동시에 감지하고 반응할 수 있습니다.
    • 복잡한 퍼즐 게임에서 여러 상호작용이 동시에 발생할 때 특히 유용합니다.

Cinemachine

  • 사용 이유 :
Dolly Track
  • 정해진 경로를 따라 카메라를 이동시켜, 특정 퍼즐이나 중요한 공간을 역동적으로 보여주기 위함.
Hard Look At Target
  • 플레이어가 움직이는 대로 카메라가 정확히 따라가 1인칭 시점을 구현.
Orbital Transposer
  • 플레이어가 캐릭터 주변을 자유롭게 둘러보며 퍼즐을 해결할 단서를 찾거나 환경을 탐색할 수 있는 3인칭 시점을 제공하기 위함.

URP

  1. 사용 이유 :
    • URP는 모바일, PC, 콘솔 등 다양한 기기에서 효율적으로 작동하도록 설계된 렌더 파이프라인입니다. URP를 사용하여 성능을 최적화하고 이식성을 높일 수 있습니다.
    • URP는 복잡한 시각 효과보다 가볍고 빠른 렌더링을 우선시합니다. 덕분에 게임의 전체적인 성능을 유지하면서도 금속 재질 같은 복잡한 텍스처를 효과적으로 표현할 수 있습니다.
Pipe

배운 점

낮과 밤 기능 구현

낮과 밤 기능 구현

  1. 구현 이유
    • 퍼즐 해결을 위한 기능이 레이저을 골 머신에 맞춰서 해결하는 기능 밖에 존재하지 않음.
    • 퍼즐의 다양성을 추가하기 위해서 낮과 밤을 바꾸고 이에 따라 활성화되는 블럭을 추가.
  2. 구현 방법
    • Unity의 Sun Source 기능을 활용. 해당 Sun Source 라이트를 회전 시켜서 시간의 변화를 표현.
    • 낮과 밤을 Bool 변수로 표현하고 이에 따라 블럭을 (비)활성화.
  3. 구현된 모습
낮밤

세이브 로드 기능 구현

  1. 구현 이유
    • 퍼즐 진행 중, 게임을 종료할 일이 생길 수 있음.
    • 이에 게임 진행을 저장하는 기능이 필요.
  2. 구현 방법
    • 퍼즐 클리어 시, PlayerPrefs를 사용해서 씬 이름, 위치 정보, 현재 시간 등의 간단한 데이터를 저장.
    • load 버튼 누를 시, 마지막 씬으로 이동.
    • SceneManager.sceneLoaded에 등록된 추가 메서드로 플레이어의 위치와 시간을 재설정.
  3. 예시 코드
예시 코드

로비 카메라 기능 구현

움직이는 카메라 만들기

  1. 구현 이유
    • 로비에서 맵 전체를 보여줌으로써 게임의 분위기를 보여주는 연출이 필요.
  2. 구현 방법
    • Chinemachin의 Dolly Track를 활용해서 카메라의 이동 루트를 설정.
    • 이동 루트의 백터 좌표를 가져와 코루틴으로 카메라를 이동.
    • 루프 형태를 판단하여, 일정한 방향으로 이동하는 코루틴과 왕복 형식의 코루틴을 구현.
  3. 구현된 모습
로비 카메라

구현 기능

  1. 밤/낮 변경 기능
    • 밤 또는 낮에만 활성화 되는 블럭.
    • 밤 또는 낮에만 보이는 블럭.
  2. 로비 카메라 기능
  3. 세이브 로드 기능
  4. 일부 UI 기능
    • 로딩 씬에서 UI 비활성화
  5. 사운드 기능
  6. 퍼즐 해결 기능

시연 영상

유니티 숙련 주차 개발3끼조 게임 Physics Puzzle

플레이 해보기

Axis

profile
게임 개발자가 되기 위해서 공부하는 중입니다.

0개의 댓글