가끔씩 실수로 잘못된 데이터 타입을 가져오는 경우가 있었습니다. 그래서 제네릭 형식 제약 조건을 걸고 장비아이템 데이터만 가져올 수 있도록하는 메서드를 만들었습니다. 제약 조건을 사용함으로써 실수로 해당 함수를 작성하더라도 컴파일단계에서 에러를 도출할 수 있도록 만들었습니다.
// ORDER : #4) 제네릭 형식 제약조건으로 장비아이템 데이터를 가져오는 함수
// 장비 아이템 데이터를 가져옵니다.
public bool GetEquipmentData<T>(int id,out T sourceData) where T : EquipmentData
{
EquipmentData data;
if (!equipmentDataDic.TryGetValue(id, out data))
// 찾는 ID가 없다면
{
Debug.LogError("찾는 데이터가 없습니다.");
sourceData = null;
return false;
}
// 찾은 데이터를 T 로 변환합니다.
sourceData = data as T;
if (sourceData == null)
// 변환 값이 없다면
{
Debug.LogError("찾은 데이터가 잘못된 데이터입니다.");
return false;
}
return true;
}'Portfolio > Portfolio_RiseTheTower' 카테고리의 다른 글
| #6) 현재 무기 외형에 따라 나올 애니메이션 컨트롤러를 변경 (0) | 2023.07.26 |
|---|---|
| #5) 현재 자신의 위치에서 가장 가까운 컨트롤러를 반환하는 함수 (0) | 2023.07.26 |
| #3) 현재 상태에 따라 컨트롤러의 동작을 변경하는 상태패턴 구현 (0) | 2023.07.26 |
| #2) 오브젝트 풀 사용 예시 (0) | 2023.07.26 |
| #1) 싱글턴 패턴 사용 예시 (0) | 2023.07.26 |