게임 디자인 패턴
팩토리 메서드 패턴 (Factory Method Pattern)
팩토리 메소드 패턴 정의 => 객체를 생성하기 위한 인터페이스를 정의하는데, 서브클래스에서 어떤 클래스를 만들지를 결정하게 함으로써 객체 생성을 캡슐화 한다. => 팩토리 메소드 패턴을 이용하면 클래스의 인스턴스를 만드는 일을 서브클래스에게 맡기게 된다. 서브클래스가 만든다는 뜻 => 생산자 클래스가 실제 생산될 제품에 대한 사전지식을 알고 싶어하지 않고, 사용하고만 싶어한다. => 그래서 객체의 생성을 서브클래스에게 위임하고, 서브클래스에서는 어떤 클래스의 인스턴스를 만들지 결정한다. 사용목적 및 용도, 장점 => 객체 생성 코드를 전부 한 객체 또는 메소드에 넣으면 코드에서 중복되는 내용을 제거할 수 있고, 객체의 생성을 한 군데에서만 관리하면 된다. => 동일한 인터페이스 구현으로 새로운 객체가 추..
싱글턴 패턴 (Singleton Pattern)
1. 싱글턴 패턴 정의 => 오직 한 개의 클래스 인스턴스만을 갖도록 보장하고, 이에 대한 전역적인 접근점을 제공한다. => GoF의 정의 2. 유니티에서의 싱글턴 패턴 => 같은 씬안에서의 데이터 공유 => 서로 다른 씬들간의 데이터 공유 => 씬에 빈객체를 생성한 후에 오직 하나의 객체만 생성되도록 만들고, DontDestoryOnLoad 메소드를 통해 씬 변경시에도 파괴되지 않는 형태로 구현한다. 3. 싱글턴 패턴의 장단점 => 싱글턴 패턴의 객체는 일종의 전역 변수이다. => 장점 1. 모든 곳에서 접근이 가능하다. => 단점 1. 모든 곳에서 접근 가능하니, 객체의 변경 시점과 변경 주체를 알기가 쉽지 않다. => 단점 2. 단점 1의 주체를 알려면 호출하는 모든 코드들을 다 찾아야 알 수 있다..
컴포넌트 패턴 (Component Pattern)
1. 컴포넌트 패턴 정의 서로 다른 기능은 나누어 작성하여 서로간 커플링 없이 다룰 수 있게 하는 것 => 로직을 기능별로 컴포넌트화 하는 것 2. 컴포넌트 패턴 사용 이유 using System.Collections; using System.Collections.Generic; using UnityEngine; enum MOVE { MOVE_RIGHT, MOVE_LEFT } public class AllAct : MonoBehaviour { GameObject player1; GameObject player2; MOVE move = MOVE.MOVE_RIGHT; void Start() { player1 = GameObject.Find("Player1") as GameObject; player2 = Ga..