본문 바로가기

프로젝트/Lucky Defense (InGame Clone)6

운빨존많겜 인게임 클론 프로젝트 소개 개요Github Link111퍼센트사의 대표작 운빨존많겜 인게임(전투) 시스템을 모작한 프로젝트입니다짧은 시간 내 최대한 유사한 수준의 완성도로 구현하는 것을 목표로 구현하였습니다 프로젝트 기간25.03.05 - 25.03.09 (5일)최초 프로젝트 시작 커밋 (initial commit)마지막 구현 커밋 (chore: 오류 방지) 개발 환경Unity 2D URP 22.3.39f1, macOS Sequoia 15.3.2UniTask, UniRx, DOTWeen, Input SystemRider 2024.3.3 플레이 영상 링크운빨존많겜 인게임 시스템 모작 (클리어)운빨존많겜 인게임 시스템 모작 (게임오버) 주요 구현UniRx와 MVP 패턴을 이용한 UI 시스.. 2025. 3. 14.
AI Player 동작 구현 개요프로젝트에서 플레이어와 함께 싸우는 AI Player가 어떻게 동작하도록 구현했는지 소개하는 글이다  내용기본적으로 에너미와 유닛 프리팹 구조글에 쓰인 것처럼 Root - BTController - OtherController 구조는 같다따라서 핵심이 되는 AIBTController 클래스만 소개하겠다 AIBTControllerAI의 의사 결정을 구조화한 클래스다// AIBTController 내부 CreateTree 메서드private BehaviorTree CreateTree(GameObject owner){ BehaviorTree bt = new BehaviorTreeBuilder(owner) .Selector("최우선 행동 선택") // 1. 유닛 합성이 .. 2025. 3. 14.
유닛 배치 필드 구현 개요유저가 직접 조작하는 유닛 배치 필드 구현 회고, 그리고 소개하는 글이다  내용유닛 배치 필드 소개 플레이어가 소환한 유닛이 배치되고, 유닛 배치 변경 및 플레이어 입력을 받아 특정 동작을 수행할 수 있는 영역이다 이 글을 통해 소개하고 싶은 부분은 UnitPlacementNode와 UnitGroup을 이용하여 어떻게 내부 상태를 관리하는지이다  UnitPlacementNode UnitPlacementNode는 유닛이 배치되는 단일 노드로, 각 사이드에 18개씩 존재하여 유닛 배치를 관리하는 역할을 한다 유닛의 배치 상태를 관리하고, 유닛 추가 및 삭제, 그리고 위치 조정을 처리한다. 또한 내부의 UnitGroup 클래스를 통해 유닛의 등급, 타입, 개수 등을 관리하며, 배치 가능 여부를 판단할 수 .. 2025. 3. 14.
에너미와 유닛 재활용을 위한 풀링 시스템 개요프로젝트에서 구현한 풀링 시스템을 소개하는 글이다  내용ObjectPoolBaseUnityEngine.Pool.ObjectPool을 기반으로 한 오브젝트 풀링 관리 추상 클래스다제약 조건을 걸어 Component 타입을 내부에서 사용할 수 있게 하였다 일관된 패턴을 사용함으로서 개발자의 러닝 커브를 줄이고 필요에 따라 메서드를 오버라이드하여 특정 풀링 로직을 커스텀할 수 있게 하였다public abstract class ObjectPoolBase : MonoBehaviourBase where T : Component{ private ObjectPool objectPool; [SerializeField] private T prefab; [SerializeField.. 2025. 3. 14.
에너미와 유닛 프리팹 구조 개요프로젝트에서 에너미와 유닛 프리팹을 어떻게 구성하였는지 회고하고 소개하는 글이다  내용프리팹 구성기본적으로 에너미와 유닛 프리팹의 구성은 같다 Rigidbody와 각종 컴포넌트가 달려있는 Root 오브젝트SpriteRenderer가 부착된 Body그외 오브젝트들은 에너미/유닛 컨트롤러가 사용하는 컴포넌트가 부착되어 있다  Root기본적으로 초기화와 자원 정리를 담당하는 Root 클래스를 구현하였다. 필요한 컴포넌트의 초기화와 자원 정리를 한 곳에서 담당하게 만들기 위해 구현한 클래스다 Root 클래스는 필요한 참조를 외부에서 받아와 컨트롤러에 뿌려주며, 컨트롤러는 자신이 생성될 때 초기 세팅을 마치고 풀에서 나올 때 동작에 데이터를 세팅한다(에너미와 유닛 재활용을 위한 풀링 시스템 참고)public .. 2025. 3. 14.
UniRx와 MVP 패턴을 이용한 UI 시스템 개요프로젝트에서 UI 시스템을 어떻게 설계하고 사용하였는지 회고하고 소개하는 글  내용구현된 UI 계층 구조 위와 같은 UI 계층 구조를 기반으로 ViewController, View, Presenter의 역할을 명확히 구분하여 UI를 설계했다.ViewController: UI의 카테고리를 구분하는 역할View, Presenter: UI의 기능별 역할을 분리Model - View - Presenter(MVP) 패턴 적용: 특정 데이터가 변경되면 자동으로 UI가 갱신되도록 구현이러한 방식으로 UI를 구성하면, 필요한 UI 요소를 체계적으로 설계할 수 있고, 추상 클래스를 활용하여 일관된 구조로 빠르게 구현할 수 있다. 그리고 유지보수를 용이하게 했다  UI 시스템 초기화 시퀀스프로젝트에서 모든 데이터는 적.. 2025. 3. 14.
반응형