전체 글(52)
-
Unity 오브젝트 풀링 코드
예전부터 오브젝트 풀링이 필요할 때마다 그때그때 스크립트를 새로 만들어 쓰곤 했는데,이번엔 아예 재사용 가능한 형태로 하나 만들어두자는 생각으로 정리해봤습니다.제네릭으로 만들어서 어떤 Unity 오브젝트든 쓸 수 있고,이름 기반으로 관리되기 때문에 다양한 오브젝트를 풀 하나로 처리할 수 있습니다. private readonly Func _factory; private readonly Action _onGet; private readonly Action _onReturn; 로 액션을 미리 받아서 처리하도록 만들었습니다. https://github.com/wolstar415/UnityObjectPool 더보기코드using System;using System.Collections.G..
2025.04.09 -
유니티에서 다중 이펙트를 처리하는 브리지 + 컴포지트 패턴 활용하기
게임 개발을 하다 보면 무기나 스킬 하나에 여러 속성 효과(불, 독, 빙결 등)를 동시에 적용해야 하는 상황이 자주 발생합니다. 예를 들어, "불+중독+빙결" 속성이 함께 들어간 공격을 구성하고 싶을 수 있습니다.이 글에서는 이 문제를 해결하기 위해 두 가지 디자인 패턴을 결합하는 방법을 소개합니다:브리지(Bridge) 패턴: 무기와 이펙트를 분리해 구조적으로 확장 가능한 설계를 제공합니다.컴포지트(Composite) 패턴: 여러 이펙트를 하나의 이펙트처럼 묶어 다중 효과를 유연하게 조합할 수 있게 해줍니다.브리지(Bridge) 패턴이란?브리지 패턴은 **추상화(Abstraction)**와 **구현(Implementation)**을 분리하여, 두 계층을 독립적으로 확장할 수 있게 하는 구조입니다.유니티에..
2025.03.30 -
유니티에서 중재자(Mediator) 패턴 활용하기
게임을 만들다 보면 시스템 간 통신이 점점 복잡해지고, 서로의 존재를 직접 알아야만 동작하는 구조가 만들어지기 시작합니다. 예를 들어:여러 UI 버튼들이 서로의 상태를 변경해야 하는 경우플레이어가 죽었을 때, 카메라 줌, 사운드 재생, UI 출력 등 다양한 시스템이 함께 작동해야 하는 경우스킬 하나를 사용했을 때 여러 연출과 효과가 동기화되어야 하는 경우이렇게 서로 얽히고설킨 의존성을 일일이 직접 연결하면 유지보수는 금방 악몽이 됩니다.이런 상황에서 중앙에서 모든 소통을 중재해주는 구조, 즉 중재자(Mediator) 패턴이 효과를 발휘합니다.중재자 패턴이란?중재자(Mediator) 패턴은 여러 객체 간의 직접적인 소통을 막고, 모든 통신을 하나의 중재자 객체를 통해 간접적으로 수행하는 패턴입니다.즉, 객..
2025.03.29 -
유니티에서 빌더(Builder) 패턴 활용하기
게임 개발을 하다 보면 단순한 객체 생성으로는 부족한 경우가 많습니다. 특히 아래와 같은 상황이라면 더욱 그렇습니다:캐릭터를 생성하면서 외형, 능력치, 무기, 스킬을 조합해야 할 때보상 패키지를 구성할 때 경험치, 아이템, 재화 등을 단계적으로 설정해야 할 때ScriptableObject나 JSON으로부터 설정 데이터를 불러와서 동적으로 생성해야 할 때테스트용으로 다양한 설정의 유닛을 빠르게 만들어야 할 때이처럼 복잡하고 다양한 설정을 가진 객체를 유연하게 생성하려면, 단순한 생성자 호출이나 new 연산자만으로는 부족합니다.이럴 때 유용하게 사용할 수 있는 것이 바로 빌더(Builder) 패턴입니다.빌더 패턴이란?빌더 패턴은 복잡한 객체 생성을 단계별로 분리하고, 그 과정을 유연하게 구성할 수 있도록 해..
2025.03.29 -
유니티에서 템플릿 메서드(Template Method) 패턴 활용하기
게임을 만들다 보면 “전체 흐름은 같지만, 세부는 다르게” 처리하고 싶은 순간이 정말 많습니다. 예를 들어 다음과 같은 상황을 떠올려 보세요:여러 미니게임들이 있고, 공통된 흐름(셋업 → 실행 → 종료)은 같지만 내부 로직은 다를 때다양한 UI 팝업이 열릴 때 공통 애니메이션을 재생하되, 보여주는 내용은 달라야 할 때여러 개의 적 AI가 같은 순서로 행동하지만 구체적인 동작은 다르게 해야 할 때이처럼 동일한 틀 안에서 세부만 바꾸고 싶을 때, 아주 적합한 디자인 패턴이 바로 템플릿 메서드(Template Method) 패턴입니다.템플릿 메서드 패턴이란?템플릿 메서드 패턴은 알고리즘의 전체 흐름(템플릿)은 상위 클래스에서 정의하고,세부 동작은 하위 클래스에서 구현하도록 강제하는 패턴입니다.즉, 전체 구조는..
2025.03.29 -
유니티에서 싱글톤(Singleton) 패턴을 활용하기
유니티 개발을 하다 보면 한 번쯤은 마주치는 패턴, 바로 싱글톤(Singleton)입니다. 특히 게임 매니저, 오디오 매니저, UI 매니저처럼 게임 전체에서 하나만 존재해야 하는 시스템을 구현할 때 자연스럽게 떠오르죠.하지만 이 싱글톤 패턴, 많은 분들이 '편리하다'는 이유로 남용하거나, 정확한 개념 없이 사용해서 의존성이 꼬이는 코드로 이어지는 경우가 꽤 많습니다. 이번 글에서는 싱글톤 패턴이 무엇인지, 왜 필요한지, 유니티에서는 어떻게 쓰는 게 바람직한지, 그리고 실전에서 사용할 수 있는 예제 코드까지 정리해드리겠습니다.싱글톤 패턴이란?싱글톤 패턴은 클래스의 인스턴스를 단 하나만 생성하도록 보장하고, 전역 접근을 가능하게 하는 디자인 패턴입니다.즉, 어떤 클래스가 프로젝트 전체에서 딱 하나만 존재하고..
2025.03.29