전략 패턴(Startegy Pattern)
행동을 캡슐화하여 런타임에 동적으로 변경할 수 있도록 설계된 디자인 패턴.
다양한 행동을 구현하고, 상황에 따라 이를 선택적으로 사용할 수 있을 때 유용함.
(캐릭터 이동 방식(걷기, 뛰기, 점프 등)을 유연하게 변경하고 싶을때나
플레이어의 상태에 따라 다른 공격 패턴을 사용해야 하는 경우 등등)
주로 여러 가지 행동을 동적으로 전환해야 할 때 많이 사용됨.
스크립트 해석
Gun Weapon 스크립트
(총기 무기와 관련된 데이터를 저장하는 용도로 사용)
struct : 구조체를 정의할떄 사용하는 키워드
값 타입(Value Type)으로 데이터와 관련된 여러 필드를 하나의 단위로 묶어서
표현할 수 있도록 설계된 사용자 정의 데이터 형식
// 총기 무기와 관련된 데이터를 저장하는 용도로 사용
// struct : 구조체를 정의할떄 사용하는 키워드
// 값 타입(Value Type)으로 데이터와 관련된 여러 필드를 하나의 단위로 묶어서 표현할 수 있도록 설계된 사용자 정의 데이터 형식
public struct Data
{
public float delayTime;
public int maxBullet;
public string info;
public GameObject bullet;
}
protected : 접근 제한자로, 해당 멤버(필드, 메서드 등)가 이 클래스와
파생 클래스(자식 클래스)에서만 접근할 수 있도록 제한
virtual :부모 클래스에서 기본 동작을 정의하고, 자식 클래스에서 필요하면
이를 재정의할 수 있도록 할 때 사용



// 무기 초기 설정을 정의하는 추상 메서드
public abstract void InitSetting();
// protected : 접근 제한자로, 해당 멤버(필드, 메서드 등)가 이 클래스와 파생 클래스(자식 클래스)에서만 접근할 수 있도록 제한
// virtual :부모 클래스에서 기본 동작을 정의하고, 자식 클래스에서 필요하면 이를 재정의할 수 있도록 할 때 사용
protected virtual void AdjustBulletCount()
{
data.maxBullet--; // 기본 동작
}
WeaponController 스크립트
(플레이어의 무기를 관리하는 데 사용)
WeaponUI 스크립트
(무기와 관련된 UI 버튼 클릭 이벤트를 처리하며, 무기를 변경하는 역할을 수행.)
Assault Rifle, SniperRifle, Machinegun 스크립트
(각 각, GunWeapon이라는 부모 클래스를 상속받아,
(Assault Rifle, SniperRifle, Machinegun) 의 전용 설정과 동작을 정의)
'게임 개발(유니티) > 멋쟁이 사자처럼 3기_회고록' 카테고리의 다른 글
| [멋쟁이사자처럼 유니티 TIL] 2025_01_17 강의 요약 및 정리 (0) | 2025.01.18 |
|---|---|
| [멋쟁이사자처럼 유니티 TIL] 2025_01_16 강의 요약 및 정리 (0) | 2025.01.16 |
| [멋쟁이사자처럼 유니티 TIL] 2025_01_15 강의 요약 및 정리 (0) | 2025.01.15 |
| 유니티 디자인패턴_Factory Pattern패턴(2) (0) | 2025.01.12 |
| 매개변수 (0) | 2025.01.10 |