일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- Flyweight Pattern
- knapsack Problem
- SWEA
- programmers
- dirtyflag pattern
- stack
- BFS
- Silver
- algorithm
- Bronze
- solid 원칙
- 8-Puzzle
- 3D RPG
- level1
- Project
- Modern C++
- effective C++
- PrefixSum
- binary search
- 프로그래머스
- Unity
- Zenject
- Gold
- two pointer
- trie
- BOJ
- Euclidean
- level3
- LEVEL2
- 프로세스 상태
- Today
- Total
목록Unity (12)
Patrick's Devlog

Observer Pattern관찰하는 대상이 있고, 관찰 중 이벤트 발생 시 역할을 수행하는 패턴이다. 청취자(Observer)들에게 신호를 보내는 라디오 송신탑(Subject)과 유사하다. 오브젝트의 상태가 변경되면 종속된 모든 오브젝트들에게 알림이 간다. 1:N 종속 관계를 사용해 오브젝트가 통신하되 낮은 결합도를 유지한다. Subject는 Observer를 알지 못하거나, 신호를 수신한 Observer가 무엇을 하든 관여하지 않는다. 또한 Observer는 Subject에 대해 종속 관계를 갖고있긴 하지만, 서로에 대해서는 모른다. 그래서 확장과 유지보수에 용이하다. 이는 주로 이벤트 핸들링이나 MVC 패턴에서 활용된다. Subject 추제가 존재하고, Observer들은 Subject를 주시하고..

State Pattern위의 사진은 애니메이션 상태 전이를 위한 Animator임을 이미 유니티 사용자들은 알고있을 것이다. 흔히 이를 유한 상태 머신(FSM)이라고 하는데, 상태 패턴을 기반으로 한다. State는 오브젝트의 다양한 상태를 제어한다. 주로 게임에서의 상태 패턴은 애니메이션이나 NPC에 적용된다. 유니티에서는 이러한 상태 패턴을 시스템화되어있다. 상태 패턴은 객체 내부 상태에 따라 스스로 행동을 변경하는 것이다. 상태를 클래스로 캡슐화하고, 상태 전환을 클래스 간의 참조 변경으로 처리한다. 상태 패턴의 예시는 캐릭터 애니메이션의 상태, 네트워크 연결 상태, 툴 상태 등이 존재한다. 장점상태를 캡슐화해 상태 전환 로직을 각 상태 클래스에 분리 가능 → 유연한 상태 전환상태 전환을 더 쉽게..

단일 책임 원칙(Single-Responsibility Principle)모든 클래스는 하나의 책임만 가지며, 클래스는 그 책임을 완전히 캡슐화해야 한다. 클래스가 제공하는 모든 기능은 이 책임과 부합하다. Readability(가독성) : 짧은 클래스가 읽기 쉬움(example> 200~300 lines)Extensibility(확장성) : 작은 클래스로부터 상속이 쉬움Reusability(재사용성) : 부분에서 재사용할 수 있도록 작고 모듈식으로 설계위의 그림처럼 인스펙터 창에 있는 컴포넌트들은 모두 단일 책임 원칙을 따른다. public class Player : MonoBehaviour { [SerializeField] private string inputAxisName; [Serial..

1. Zenject?Unity 3D를 대상으로 제작된 DI 프레임워크(Dependency Injection Framework)이다. 이는 확장이 가능하고, 유연한 방법을 통해 코드를 쉽게 작성, 재사용, 리팩토링, 테스트를 진행할 수 있다. 이에 대한 특징으로는 의존성 주입, 조건부 바인딩, 컨테이너 중첩, 하나의 Scene에서 다음 Scene으로 정보를 전달하기 위해 여러 Unity Scene에 삽입가능, 한 Scene이 다른 Scene에서 바인딩을 상속할 수 있도록 하는 Parent Scene지정 등 여러 가지가 존재한다. 2. Tutorial설명으로는 사실 와닿지 않아서, 간단하게 설치해보고 예시를 확인해보려고 한다. 설치는 쉽게 에셋 스토어에서 할 수 있다. 프로젝트에 설치를 했다면 간단하게 코드..