작성
·
372
답변 2
1
우선 현재 방식을 100% 지켜야 할 필요는 없습니다.
리소스가 많아지고 반응성이 중요한 UI라면
끌 때 Destroy하지 않고 그대로 들고 있되 보이지만 않게 처리해줄 수도 있습니다.
그와는 별개로 코드 설계상 실제 데이터는
UI 로직과는 별도로 관리하는 것이 좋습니다.
인벤토리를 예로 들면, 인벤이란 곧 소지하고 있는 아이템 목록을 의미하고,
[인벤이 꽉 차면 아이템 더 이상 주을 수가 없다]
[플레이어가 죽으면 인벤에 있는 아이템 하나를 랜덤으로 떨군다] 는 등의 다양한 사양과 엮여 있을 수 있습니다.
반면 UI_Inven은 정말 인벤토리에 있는 정보를 화면 UI에 출력하기 의한 용도로도 사용되니,
실제 데이터를 여기에 들고 있는 것이 맞을지는 살짝 의문이 들겠죠.
인디 게임 수준의 작은 게임이라면 뭘 어디에 관리해도 사실 크~게 상관 없지만,
규모가 조금 커지면 코드가 꼬일 확률이 비약적으로 높아지게 됩니다.
따라서 대부분 데이터는 별도의 클래스 (ex. Inventory)를 파서
일종의 전역 매니저 (ex. MyPlayer나, Managers라거나)에 들고 있고,
UI_ 코드에는 정말 UI와 관련된 코드만 넣는 경우가 많습니다.
(UI_Inven에서 실제 인벤 정보를 조회하기 위해선 Inventory 클래스를 참조하는 방식이 되겠죠)
0
감사합니다. 개인적으로 클리커 게임을 만들고 있다보니 거의 UI 위주로 진행이 되어서 궁금했어요.
말씀하신대로 로직은 따로 관리하고 UI에는 로직에 따른 값만 적용시켜주는 방향으로 하면 생성/파괴를 반복해도 큰 문제는 없을 것 같네요!