HOW TO UNITY | Strategy 패턴
unity 유니티 공부 2025. 11. 28. 15:53 |
https://www.youtube.com/watch?v=ic2tGGQrq1c
소개
객체지향의 기본
게임에서 다양한 아이템, 몬스터 등
객체를 만들 때 적합
포장한 후 서로 교환 가능하게 함
이게 원리
+
상새
코드를 분해해 보면
1. 로봇이 있다
2. 걷기를 / 날기를 / 달리기를
3. 동작을 시행한다

1. 시작
초기 작업

2. 중간
교체 가능한 케이스 들을 나열 함

3. 끝
실행하는 클래스
참고
여기서는 스크립터블 오브젝트를 예로 들지만
씨샵 스크립트도 예시가 될 수 있다 함
연관 코드 지식
상속
MonoBehaviour 넣을 자리에 부모 class 이름 넣음
public class Enemy : Unit { }
public class 자식 : 부모
부모에선 virtual 을 쓴다
자식에선 override 를 쓴다
virtual 키워드는 이 메서드는 자식 클래스에서 내용을 덮어쓰거나(Override) 확장할 수 있도록 허용한다
+
참고로 여기선 i 인터페이스는 안 씀
i 인터페이스를 쓰기 애매함
i 인터페이스는 완전 빈 껍데기 이기 때문
+
공통점도 있고 차이점도 가지고 있는 여러가지를 다룰 때는
예로 들어,
아군 스킬 시스템을 짤 때는
if else 는 쓰지 마라
switch case 도 쓰지 마라
코드 수정을 많이 해야 하기 때문이다
+
| if else 써야 할 때 | if else 쓰지 말 아야 할 때 |
| 같은 class 내에 통으로 해결 | class 를 따로 분리함 |
| 코드길이 3줄 내로 짧음 | 분기가 많을 때 |
| 안 바뀔 때 | 수정 및 확장 가능성 있을 때 |
| 논리 짤 때 | 컨텐츠 다룰 때 |
| if else 써야 할 때 | if else 쓰지 말 아야 할 때 |
| 체력 최대 한도 체크 현재 체력이 맥스 체력 보다 클 때 |
적 ai 패턴 돌격형, 수비형, 회복형 |
| 애니메이터 연결 isRun bool 값 체크 |
승리 조건 특정 타일에 도달, 20턴 버티기, 적 전멸 |
| null 체크 | 무기 스킨 선택 |
+
strategy 패턴은 복잡한 다중선택지 구조 라고 보면 됨
if 문의 업글 버전임
+

유니티 내에선
Render Feature 가 strategy 패턴 쓴 예시 임
Add Renderer Feature 뜻
여러 화면 효과를 의미함
외곽선 효과 (Outline)
스크린 공간 앰비언트 오클루전 (SSAO)
그림자가 닿지 않는 곳에 미세한 음영 추가
디더링 효과 적용 (Dither)
+
