- 추상 팩토리 패턴(Abstract Factory Pattern)
추상 팩토리 패턴은 관련된 객체 그룹을 생성하는 팩토리 클래스를 추상화하여
클라이언트가 특정 팩토리 구현에 의존하지 않고 객체를 생성할 수 있게 함.
팩토리 클래스 자체를 추상화하여 다양한 구현체를 제공
구현도가 복잡하지만, 유연성이 높고, 여러 객체군을 생성하고 관리해야 할 때 많이 사용됨.
추상 팩토리 패턴은, 팩토리를 통해 관련 유닛들의 군(product family)을 관리
스크립트 해석
Unit 1 스크립트
(유닛 데이터 관리와 행동 정의를 위한 핵심적인 역할)
SettingDatas3 스크립트
(Soldier(병사)와 Flight(비행 유닛) 두 가지 유형의 유닛에 대한 기본 속성 값을 저장하는 역할을 수행)
UnitManager 스크립트
(Soldier와 Flight을 생성, 관리, 업그레이드하는 기능을 제공)
ref :
C#에서 메서드에 인수를 전달할 때, 매개변수는 값에 의한 전달(pass by value)이 기본.
즉, 메서드 내부에서 매개변수를 수정하더라도, 호출한 쪽의 원본 값은 변하지 않음.
ref 키워드를 사용하면, 매개변수는 참조에 의한 전달(pass by reference)로 처리되며,
메서드 내부에서 매개변수를 수정하면 원본 값이 직접 변경
// Soldier1 의 능력치를 상승시키는 메서드
public void Soldier1LevelUp()
{
foreach (var soldier1 in soldierList1)
{
// soldier1 의 Soldier1 컴포넌트를 불러와서 SumState() 메서드르 실행
soldier1.GetComponent<Soldier1>().SumState();
}
// 해당 인수들(ref settingDatas3.soldierLevel, ref settingDatas3.soldierHP, ref settingDatas3.soliderAttackPower)
// 을 Soldier1DataUpdate 에 전달
// ref를 사용하면 메서드 내부에서 매개변수의 값을 변환할때, 원본 값도 변경됨.
Soldier1DataUpdate(ref settingDatas3.soldierLevel, ref settingDatas3.soldierHP, ref settingDatas3.soliderAttackPower);
}
private void Soldier1DataUpdate(ref int lv, ref float hp, ref float attack)
{
lv += 1;
hp += 10;
attack += 1;
}
Flight, Soldier 스크립트
(각 각, StateUpdate와 InforUnitState 메서드를 구현하여 유닛의 상태 업데이트와 상태 정보를 반환하는 기능을 제공)
AbstractFactoryPattern 스크립트
(유닛 클릭 시 상태를 UI에 표시하고, 상태 창을 닫을 수 있는 기능을 제공)
'게임 개발(유니티) > 멋쟁이 사자처럼 3기_회고록' 카테고리의 다른 글
| 유니티 디자인패턴_Startegy Pattern패턴 (0) | 2025.01.16 |
|---|---|
| [멋쟁이사자처럼 유니티 TIL] 2025_01_15 강의 요약 및 정리 (0) | 2025.01.15 |
| 매개변수 (0) | 2025.01.10 |
| 유니티 디자인패턴_Factory Pattern패턴(1) (0) | 2025.01.10 |
| 유니티 디자인패턴_Observer 패턴 (0) | 2025.01.09 |