Unity - Only Up 모방 프로젝트

한예준·2025년 5월 19일

오늘은 Only Up 형식의 게임을 모방해보는 개인 프로젝트를 진행하였다. 프로젝트를 진행하기 전 어떤 내용을 구현해볼지 계획하고 어떤 순서로 개발해나갈지를 고민해보았다. 이후 본격적으로 작업을 시작했다.


Only Up 모방 프로젝트

구현 계획

프로젝트 시작 전, 다음과 같은 기능들을 만들어보기로 계획했다.

  • 기본 이동 및 점프 구현 (WASD, Space)
    • RigidbodyInputSystem을 활용하여 기본적인 이동 및 점프, 그리고 시점 조작 기능을 구현한다.
    • Raycast를 이용하여 지면을 체크하여 점프 가능 여부를 판단하도록 한다.
  • 체력 및 스태미나 UI 구현
    • 체력, 스태미나 등 여러 상태를 표시하는 UI를 구현한다.
    • 강의에서 배운 내용대로 값 변경 시 최대값과 현재값의 비율에 따라 UI를 조정하도록 한다.
  • 아이템 데이터 시스템 구현
    • ItemData (ScriptableObject)를 생성하여 게임 내 모든 아이템의 속성을 정의하고 관리한다.
  • 아이템 사용 시스템 구현
    • 상호작용 가능한 오브젝트의 규격을 정의하는 인터페이스를 작성한다.
    • 플레이어 시점에서 Raycast를 쏴 상호작용 가능한 오브젝트를 감지하고 UI를 표시한다.
    • 상호작용 시 획득 혹은 사용하는 함수를 호출하여 구현한다.
  • 동적 환경 조사 시스템 구현
    • 아이템 상호작용 뿐만 아니라, 현재 서있는 발판의 속성을 감지하는 시스템을 구현한다.
  • 점프대 기능 구현
    • 특정 오브젝트(점프대 등)에 플레이어가 닿았을 때, 플레이어에게 강한 힘을 가하여 높이 점프시키는 기능을 구현한다.
    • Rigidbody.AddForce를 활용하여 점프대의 세기 조절이 가능하도록 구현한다.
  • 3인칭 시점 카메라 구현
    • 기존 1인칭 시점이던 카메라를 3인칭으로 바꾸어 볼 수 있는 시스템을 구현한다.
    • 카메라와 플레이어 사이에 장애물이 있을 경우 카메라 위치를 조정하는 등의 기능도 필요하다.
  • 움직이는 플랫폼 구현
    • 정해진 경로를 따라 움직이거나 특정 이벤트 발생 시 이동하는 오브젝트를 구현한다.
  • 벽 타기 및 매달리기 시스템 구현
    • 플레이어가 특정 조건일 때 벽에 달라붙거나 매달리는 기능을 구현한다.
    • Raycast를 통해 특정 조건을 감지하여 플레이어의 상태를 전환하는 방식으로 구현할 예정이다.
  • 다양한 아이템 효과 구현
    • ItemData에 정의된 아이템의 효과를 플레이어 상태에 적용한다.
  • 장비 장착 시스템 구현
    • 장착 가능한 아이템을 인벤토리에서 선택했을 때 장착/해제 버튼을 활성화하고, 장착 시 플레이어 모델에 특정 아이템을 시각적으로 붙이거나 플레이어 능력치에 영향을 주도록 구현한다.
  • 레이저 트랩 구현
    • 플레이어가 레이저에 닿았을 때 감지하고 데미지를 입히거나 특정 오브젝트를 소환한다.
    • RaycastCollider (Trigger)를 활용한다.
  • 플랫폼 발사기 구현
    • 플레이어를 특정 방향으로 빠르게 밀어내는 발사대 기능을 구현한다.
    • 점프대 기능을 조금 개선하는 방식으로 구현 가능할 것 같다.
  • 발전된 AI 시스템 구현
    • 특정 구역에서 플레이어를 따라다니는 적대적 오브젝트를 생성한다.
    • 배운 내용을 토대로 AI를 구현한다.

오늘 구현한 내용

  • 기본 이동 및 점프 구현
    • RigidbodyInputSystem을 활용하여 기본적인 이동 및 점프를 구현했다.
    • 실제 플레이해보니 가파른 경사에서 부자연스럽게 이동하는 문제를 해결해야 할 것 같다.
  • 체력 및 스태미나 UI 구현
    • 체력, 스태미나 등을 UI에 표시하고, 시간이 지남에 따라 서서히 회복하는 기능을 구현했다.
  • 아이템 데이터 시스템 구현
    • ScriptableObject를 활용한 ItemData 시스템을 설계하고, 아이템 정보를 효율적으로 관리할 수 있는 기반을 마련했다.
  • 아이템 사용 시스템 구현
    • 상호작용 가능한 오브젝트들의 기본동작규격을 인터페이스를 통해 만들었다.
    • ItemObject스크립트를 통해 씬에 배치된 아이템과의 상호작용 시 플레이어 인벤토리로 추가되도록 구현했다.

0개의 댓글