본문 바로가기

전체 글195

내가 하는 일에 대해 자신이 없다면, 내가 불행하다고 느낀다면. 난 왜이렇게 일을 못하는거 같지? 나는 왜 남들보다 뒤떨어 지는 걸까? 혹시 그런 마음을 가지고 계신분들에게 이 영상을 바칩니다! 당신을 응원합니다! 2020. 6. 28.
공간 분할 패턴_유니티(Unity)에서 C# 으로 사용해 보는 디자인 패턴 오브젝트가 많을 때 오브젝트 간의 충돌을 검사 한다고 하면 모든 오브젝트를 검사하는데 비용이 매우 많이 들어감 그래서 전체 영역을 n개로 쪼개서 쪼개진 부분과 동일한 곳에 있는 오브젝트끼리만 검사를 하는 패턴 using UnityEngine; public class KMS_SpacePartition : MonoBehaviour { public static KMS_Grid gridMap = new KMS_Grid(); GameObject obj = null; private void Start() { obj = Instantiate(Resources.Load("Cube") as GameObject); Camera.main.gameObject.transform.parent = obj.transform; } p.. 2020. 6. 13.
Singleton Pattern_싱글톤_유니티(Unity)에서 사용가능한 5가지 싱글톤_유니티(C#)로 사용해 보는 디자인 패턴 유니티에서 활용 가능한 5가지 싱글톤 패턴에 대해서 알아보자 1. 일반적인 싱글톤 2. 모노(MonoBehaviour)를 사용한 싱글톤 3. 프로퍼티(Property)를 사용한 싱글톤 4. 제네릭을 활용한 싱글톤 4-1. 모노(MonoBehaviour)를 사용 하지 않는 싱글톤 4-2. 모노(MonoBehaviour)를 사용 하는 싱글톤 1. 일반적인 싱글톤 using UnityEngine; public class SingletonPattern { private SingletonPattern() { } private static SingletonPattern instance = null; public static SingletonPattern GetInstance() { if (instance == nu.. 2020. 6. 6.
유니티(C#)로 사용해 보는 디자인 패턴_ProtoType Pattern_프로토타입 프로토 타입 이번 예제에서는 몬스터의 리스폰을 프로토 타입으로 구현해 보았습니다. Monster.cs public class KMS_Monster { public int health; public int speed; public int positionX; public int positionY; public virtual KMS_Monster Clone() { return new KMS_Monster(); } } 가상 함수인 Clon이 존재 Demon.cs public class KMS_Demon : KMS_Monster { public KMS_Demon(int hp, int spd, int x, int y) { health = hp; speed = spd; positionX = x; positionY =.. 2020. 5. 30.
유니티(C#)로 사용해 보는 디자인 패턴_Observer Pattern_관찰자 패턴 옵저버 패턴, UI뿐만 아니라 데이터를 일괄로 전달하기 위해 자주 사용하는 패턴 UI가 오픈 되어 있을 때에만 해당 UI에 데이터를 전달하는 예제를 작성 실행화면 ObserverPattern.cs using UnityEngine; // 옵저버 패턴의 원형 public class KMS_ObserverPattern : MonoBehaviour { public KMS_ObserverPattern nextOb = null; public UIType type; // 옵저버를 상속받는 클래스들은 다음 함수를 꼭 구현해야 한다 public virtual void Notify(Event type) { // 데이터가 전달 되었을 때 수행해야 하는 일들을 진행할 수 있다 } } 해당 클래스를 상속받은 UI들 Equipm.. 2020. 5. 24.
유니티(C#)로 사용해 보는 디자인 패턴_Flyweight Pattern_경량 패턴 경량 패턴, 동일한 내용을 묶어서 관리하는 패턴 using UnityEngine; public class KMS_FlyweightPattern : MonoBehaviour { // 16 x 16 짜리 랜덤맵을 만든다고 생각해보고 const int mapSizeX = 16; const int mapSizeY = 16; // 각 위치에 존재하는 지형,지물에 대해서 저장 한다고 했을 때 KMS_FieldObject[,] fieldObjectArray = new KMS_FieldObject[mapSizeX, mapSizeY]; // 동일한 정보는 묶어서 관리하고 다른 부분만 각자 처리하는 식의 패턴 // 예제에서는 이동 가능 여부와 이름만 넣었다 KMS_FieldObject fieldIsle = new KMS_.. 2020. 5. 24.