Design Pattern - Observer Pattern (옵저버 패턴)
·
Unity
Observer Patter - 옵저버 패턴객체 간의 1:N(One-to-Many) 관계를 정의하여, 하나의 객체 상태가 바뀌면 그 변화를 자동으로 다른 객체들에 알리는 디자인 패턴이다.Publisher(발행자)가 변경을 통보하면, Subsriber(구독자) 들이 자동으로 반응하는 구조다. 웹 프론트엔드에서도 서버나 전역 상태관리를 구독, 구독 해제 하는 기능을 사용해왔었는데 그것과 매우 유사해 보인다. 여러 객체가 하나의 상태 변화에 동시에 반응해야 할 때 유용하게 사용된다플레이어 체력 감소 → HP UI, 사운드, 로그 시스템 모두 반응게임 종료(GameOver) → 타이머 멈춤, 버튼 활성화, 텍스트 변경데이터 변경 → UI에 즉시 반영이러한 경우, 발행자가 직접 모든 객체를 참조하고 일일이 갱신..
Unity - Spawner에 Singleton Pattern 적용하기
·
Unity
프로젝트 현황 현재 위 사진과 같은 닷지 게임을 유니티로 제작하는 실습 상황에 있다.이전까지 구현사항은 Bullet.csBulletSpawner.csEnemy.csEnemySpawner.csPlayer.csWeapon.csInputComponent.cs이러한 구조를 베이스로 기본적으로 다음과 같은 흐름을 갖고있다. Player → 입력을 받아 **Weapon**을 작동시킴.Weapon → 내부에서 BulletSpawner.Fire() 호출.BulletSpawner → Instantiate()로 총알 생성.Bullet → 충돌 시 자기 자신을 SetActive(false)로 비활성화.EnemySpawner → 코루틴으로 일정 간격마다 적 생성.Enemy → 체력이 0이 되면 사망 처리 후 스패너에게 콜백..
Design Pattern - Singleton Pattern (싱글톤 패턴)
·
C#
싱글톤 패턴 (Singleton Pattern)프로그램 전체에서 단 하나의 인스턴스만 존재하도록 보장하고, 어디에서든 그 인스턴스에 접근할 수 있게 하는 디자인 패턴이다.프로젝트 내의 전역 관리자 같은 역할을 하는 구조다.인스턴스가 하나만 생성됨 (유일성 보장)static 변수를 통해 어디서든 접근 가능 (전역 접근성)필요할 때 자동으로 생성되며, 이미 있으면 새로 만들지 않음주로 게임에서 상태 관리나 시스템 매니저 역할에 사용Unity에서는 씬이 분리되어 있고 여러 스크립트가 서로 다른 오브젝트 위에서 동작한다.이때 "게임 전체 상태"를 한 곳에서 관리해야하는 경우가 있다.씬이 바뀌어도 유지돼야 하는 정보 (플레이어 점수, 설정값, 능력치 등)전역적으로 접근해야 하는 시스템 (사운드, 데이터, UI 등..
Design Pattern - Adapter Pattern (어댑터 패턴)
·
C#
어댑터 패턴 (Adpater Pattern)서로 다른 인터페이스를 가진 클래스들을 함께 동작하도록 연결하는 디자인 패턴이다.기존 시스템을 건드리지 않고, 새로운 클래스나 라이브러리를 기존 구조에 자연스럽게 통합할 때 유용하다. 가장 직관적인 비유는 플러그 변환기 다.220V 콘센트에 110V 기기를 연결하려면 어댑터가 필요하듯,소프트웨어에서도 기존 코드의 인터페이스와 새 클래스의 인터페이스가 맞지 않을 때 이를 변환해주는 역할을 한다. 기본 구성은 다음 세가지로 이루어진다.Target (목표 인터페이스)클라이언트가 기대하는 인터페이스Adaptee (적응될 클래스)기존 시스템과 호환되지 않는 외부 클래스Adapter (어댑터)Target 인터페이스를 구현하면서 내부적으로 Adaptee를 호출하여 변환 ..