일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 유니티공부
- unity게임만들기
- 유니티상호작용
- c#프로그래머스기초문법
- c#코딩기초트레이닝
- unity공부
- 스파르타
- c#코테
- 오블완
- Console.WriteLine
- c#기본문법
- Unity
- 유니티게임만들기
- 유니티
- 시샵
- 유니티서바이벌게임만들기
- unity게임
- unity3d게임만들기
- 유니티3dui
- c#문제
- c# c#프로그래머스
- 스파르타코딩클럽
- unity3d
- C#문법
- 시샵문법
- unity3dservival
- c# 백준
- c#
- 티스토리챌린지
- c#기초문법
- Today
- Total
나 개발자 진짜 되냐?
[ 10月 28日 ] 오늘 내가 배운 것 _ 30日次 [ 디자인 패턴 ] 본문
오늘은 디자인 패턴에 대해서 배웠어요!
여기에 정리해 보자
디자인 패턴
이 디자인 패턴을 왜 썼는지가 중요하다
무지성으로 활용하는 것은 지양!
싱글톤
오브젝트 풀
전략
옵저버
상태
싱글톤
왜 쓸까?
중요하고 유일하게 존재하는 대상을 쉽게 접근하기 위해
접근이 잦은 핵심 기능에 대한 전역적 접근을 허용한다.
중요한 두 가지
1. 유일성
추가적으로 생기는 것을 제한하는 방법 필요
2. 참조 多
전역적으로 접근이 가능하다 public static을 통해 구현
싱글톤과 제너릭의 연계
제너릭은 일반화 프로그래밍이다.
치환이라고 생각해 주면 좋다.
프로그래밍에서 where는 조건이다.
Where T : MonoBehaviour을 통해
모노 너만 T로 들어와! 가 된다.
제네릭으로 싱글톤을 쓸 때 중요한 건
awake, start 주의
모든 싱글톤은 dondestroyOnload 할 필요 없다
그래서
singleton <T>와
SingletonDontDestroy <T> 구분하는 것이 좋다.
오브젝트 풀
왜 쓸까?
할당/해제에 걸리는 성능 낭비와 메모리 낭비를 줄이고 싶어서
생성/ 파괴가 반복되는 오브젝트를 재활용하기 위해서
풀은 뽑힐 수 있는 대상을 묶은 단위
즉,
풀은 로또 공 뽑는 기계 같은 걸로 생각해 주면 좋다.
사용법
1. 필요한 만큼 미리 생성하고 비활 시켜준다
2. 생성 대신 비활성화 오브젝트를 찾아서 활성화
3. 만들어 둔 양 이상을 요구하면 추가생성
4. 파괴 대신 오브젝트 비활성화
필요한 만큼만 생성해줘야 하는 것이 중요
씬 로드 시 오브젝트 풀의 모든 오브젝트를 전부 다 생성해 준다.
즉 개수가 너무 많으면
씬 로드 시간을 매우 길게 만들어서
좋지는 않음
필요한 만큼만!
전략
왜 쓸까?
원본 클래스를 건드리지 않고 다양하게 추가되는 방식을 대응하고 싶어서
골프의 경우도
상황에 맞게 채를 바꾸듯
상황에 맞게 로직군을 바꿔주는 방식
우리가 생각하는 전략적! 이 아니라
코드들의 묶음을 교체 가능하게 한다.
이 전략패턴은
UI연출에 자주 쓴다.
UIView클래스에서 직접 하는 것이 아니라
UI를 보여주고 숨기는 방법을
각 전략 인터페이스에서 가능하도록 구현
상태
왜 쓸까?
여러 상태들이 있고 실행되는 로직이 달라짐을 체계적으로 관리하고 싶음
idle, angry, dead와 같은
여러 상태를 두고 그 상태에 맞는 행동을 하게 한다.
좀비를 예로 들면
처음에는 그냥 걷다가
플레이어가 나타나면! 가까이 다가오고
진짜 가까워지면 공격한다
즉 상태에 따라 행동이 다른데
그 때문에 사용한다.
보통
if문안에 if문 안에 if문 등등등
계속 조건조건조건조건
이렇게 이어질 때
상태코드로 간략하게 바꿀 수 있다.
FSM
유한 상태 기계라는 뜻
N개의 가능한 상태, 현재 상태, 상태 간의 전환으로 구성되어 있다.
더 나아가서
HFSM
Hierachial : 계층적
계층적 유한 상태 기계
큰 개념의 상태와 실제 행동을 결정하는 세부상태를 구분
다들 이해력이 참 좋은가보다
나는
왕 어려웠는데
다들 별로 안 어려웠나 보다..
부럽다
'오늘 공부를 정리해봐요!' 카테고리의 다른 글
[ 10月 30日 ] 오늘 내가 배운 것 _ 32日次_ 과제 트러블슈팅 (0) | 2024.10.30 |
---|---|
[ 10月 29日 ] 오늘 내가 배운 것 _ 31日次 (0) | 2024.10.30 |
[ 10月 25日 ] 오늘 내가 배운 것 _ 29日次 (0) | 2024.10.25 |
[ 10月 24日 ] 오늘 내가 배운 것 _ 28日次 (0) | 2024.10.24 |
[ 10月 23日 ] 오늘 내가 배운 것 _ 27日次 (0) | 2024.10.23 |