티스토리 뷰

  • 오전
    • 오전회의
    • 코드컨벤션 점검하기
    • 5분 기록보드 세션 (11:00~12:00)
  • 오후
    • 로딩화면 만들기
      • 스크린 매니저 -> (틀은 완료함.,)
      • 꾸미기 - >(다시할 것)
    • 피드백 관련 구현하기
      • DataManager 리펙토링
        • 확장메서드 활용한 데이터관리 → ugs로 나온 스크립트를 그대로 활용해서 datamanager로 통해 가져오는걸로 변경. 
      • UIBase에 SetCanvasorder 함수를 만들어둘 것
      • UImanager을 작업할 떄 리턴할 때 스트링을 뺴주는 식으로 작업할 것. 그리고 그 스트링 변수는 상단에 지정해둘것.

 

 

 

DataManager 리펙토링

 

원래 코드

private MonsterSO[] _monsterSOs 

 MonsterSO[] monsterSOs = new MonsterSO[monsterDataList.Count];
        for (int i = 0; i < monsterSOs.Length; i++)
        {
            monsterSOs[i] = ScriptableObject.CreateInstance<MonsterSO>(); // 인스턴스 생성
            monsterSOs[i].id = monsterDataList[i].id;
            monsterSOs[i].poolTag = monsterDataList[i].name;
            monsterSOs[i].fatigue = monsterDataList[i].fatigue;
            monsterSOs[i].minFearInflicted = monsterDataList[i].minFearInflicted;
            monsterSOs[i].maxFearInflicted = monsterDataList[i].maxFearInflicted;
            monsterSOs[i].cooldown = monsterDataList[i].cooldown;
            monsterSOs[i].humanScaringRange = monsterDataList[i].humanScaringRange;
            monsterSOs[i].requiredCoins = monsterDataList[i].requiredCoins;
            monsterSOs[i].monsterType = monsterDataList[i].MonsterType;
        }
        return monsterSOs;
    }

 

monsterSO를 바탕으로 list데이터를 SO데이터를 가공하여 가져왔었습니다.

 

 

리팩토링

private List<DataTable.Monster_Data> _baseMonsterDataList;

 //몬스터 데이터 초기화
protected override void Awake()
{
    ...
    LoadBaseMonsterData();
    ...
}

//몬스터 데이터 로드
private void LoadBaseMonsterData()
{
    _baseMonsterDataList = Monster_Data.GetList();
}

//몬스터 데이터 가져오기
public List<Monster_Data> GetBaseMonsters()
{
    return _baseMonsterDataList;
}

 

 

지금은 SO를 거치지 않은 리스트 형태로 가져오게 수정했습니다.

 

SO가 사라지면서 MonsterSO타입의 데이터를 모두 DataTable.Monster_Data로 바꿔주는 작업을 했습니다.

 

ex.

MonsterSO selectedMonsterData = MonsterManager.Instance.GetSelectedMonsterData();

 

DataTable.Monster_Data selectedMonsterData = MonsterManager.Instance.GetSelectedMonsterData();

 

 

 

 

코드 수는 많이 줄었으나 지금 실력으로써 중간에 데이터 파싱부분을 수정하는 작업은 어려웠습니다

 

SO와 List는 구조적으로 크게 차이가 없지만

SO변수명과  List의 변수명이 다른부분이 있어 파악하는데에 시간이 들었습니다.

 

데이터 매니저 구조는 처음부터 효율적으로 짜둬야겠습니다

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
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
글 보관함