본문 바로가기

Unity/Study

(8)
Unity C#) 디자인 패턴 가이드 #8. MVP(Model-View-Presenter) 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 해당 도서를 정리한 마지막 글입니다. 1. Model View Controller(MVC) Model View Controller (MVC)는 유저 인터페이스를 개발할 때 흔히 사용되는 디자인 패턴의 일종이다. MVC의 일반적인 아이디어는 소프트웨어의 로직을 데이터와 표시(presentation) 부분으로 분리하는 것이다. 이렇게 하면 불필요한 의존성이 줄어들고..
Unity C#) 디자인 패턴 가이드 #7. 옵저버 패턴(Observer pattern) 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 1. Observer pattern 게임에선 여러 가지 일이 발생할 수 있다. 적을 파괴할 때, 아이템을 수집할 때, 미션을 완료할 때 모두 다른 일이 발생한다.이를 위해 불필요한 의존성을 만들지 않고 어떤 객체가 다른 객체에게 통지할 수 있는 메커니즘이 필요할 것인데, 옵저버 패턴(observer pattern)은 이러한 문제를 해결하는 일반적인 방법이다. 이..
Unity C#) 디자인 패턴 가이드 #6. 스테이트 패턴(State pattern) 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 1. States and state machines 조작 가능한 캐릭터를 구축하는 것을 상상해보자. 평소에는 캐릭터가 땅에 붙어있다가 컨트롤러를 조작하면 걷거나 달릴 것이고, 점프 버튼을 누르면 캐릭터가 공중으로 뛰었다가 이후 착지하여 기본 상태로 돌아갈 것이다. 이처럼 게임은 상호작용적이며, 런타임동안 바뀌는 여러 시스템들을 추적하는 것이 필요하다. 위에서 언..
Unity C#) 디자인 패턴 가이드 #5. 커맨드 패턴(Command pattern) 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 1. Command pattern 커맨드 패턴은 특정 일련의 작업을 추적하고 싶을 때 유용한 패턴이다. undo/redo 기능을 사용하거나 입력 이력을 목록으로 유지하는 게임을 플레이한 적이 있다면 커맨드 패턴이 사용되었을 것이다. 커맨드 패턴을 도식으로 나타내면 다음과 같다. 커맨드 패턴은 메서드를 직접 호출하는 대신에, 하나 혹은 그 이상의 메서드 호출을 커..
Unity C#) 디자인 패턴 가이드 #4. 싱글톤 패턴(Singleton pattern) 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 1. Singleton pattern 싱글톤 패턴은 다음과 같은 기능을 한다. - 클래스가 객체를 하나만 가지도록 보장한다. - 그 단일 객체에 대한 쉬운 전역 액세스(global access)를 할 수 있도록 한다. 싱글톤 패턴은 모든 씬에서 작업을 조정해야 하는 오브젝트가 딱 한 개 필요한 경우에 유용하다. 가령 씬에서 메인 게임 루프를 지시하는 하나의 게임..
Unity C#) 디자인 패턴 가이드 #3. 오브젝트 풀(Object pool) 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 1. Object pool 유니티에서 런타임 중에 기본적으로 실행되는 가비지 컬렉션(Garbage Collection) 프로세스는 메모리에서 사용되지 않는 객체를 정리하는 프로세스이다. 많은 양의 오브젝트가 동적으로 생성되거나 파괴될 경우 이러한 가비지 컬렉션 프로세스가 갑작스럽게 발생하여 CPU 및 시스템 리소스 사용량이 급격하게 증가하는 GC 스파이크가 발생..
Unity C#) 디자인 패턴 가이드 #2. 팩토리 패턴(Factory pattern) 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 1. FACTORY PATTERN 많은 게임들이 게임 플레이 중에 다양한 것들을 생성한다. 이때 오브젝트들을 생성하는 특별한 오브젝트를 두는 것이 유용할 수 있다. 팩토리 패턴(factory pattern)은 이를 위해 'factory(공장)'이라는 특별한 오브젝트를 지정하며, 공장의 'product(제품)'들을 생성하는 데 관련된 세부 사항들을 캡슐화한다. 팩..
Unity C#) 디자인 패턴 가이드 #1. SOLID 원칙 본 글은 유니티에서 발간한 전자책 'Level up your programming with game programming patterns'을 정리한 글입니다. 원문은 다음 링크에서 확인하실 수 있습니다. https://unity.com/kr/resources/level-up-your-code-with-game-programming-patterns 1. THE SOLID PRINCIPLES 디자인 패턴에 앞서서 코드를 보다 이해하기 쉽고, 유연하고, 유지 보수하기 쉽게 만들어주는 5가지의 디자인 원칙들이다. 1.1. Single-responsibility principle (SRP, 단일 책임 원칙) : 한 모듈, 클래스 혹은 함수는 하나의 사항에만 책임을 져야 한다. 규모가 큰 클래스들보다, 하나의 사항..