슬더스같은 게임 만드는중임
캐릭터가 여러개있는데, 모든 캐릭터들이 공유하는 템이 있고, 각 캐릭터 전용 템이 있음
특정 아이템이 공용인지 아니면 특정 캐릭터 전용인지 구분할 데이터를 설정해야 하는데
아래 두가지 방법중 뭐가 더 나음?
======================
1. 공용 여부를 bool로 설정, 전용 템은 enum으로 구분
enum HeroClass { Fighter, Archer, Mage }
class ItemData{
...
bool isCommon;
HeroClass heroClass;
...
}
2. enum type에 공용 여부를 설정한다.
enum HeroClass { Fighter, Archer, Mage, Common }class ItemData{
...
HeroClass heroClass;
...
}
===================
HeroClass의 정체성을 생각하면 1번 방식이 나을것 같은데,
활용도는 2번이 더 좋은것 같음
가령 캐릭터에 따라 아이템 설명 UI의 디자인을 다르게 설정하고 싶을때 2번은 그냥 switch 한방으로 끝나는데, 1번은 enum 타입도 조사하면서 bool 타입도 조사해야하는등 괜히 번거로워지는 경우가 많더라고
어떻게 하는게 좋을까?
음.. enum에 Flag 어트리뷰트 사용해서 비트플래그로 사용해보는건 어떰?
생각나서 chatgpt한테 물어보니까 2번 방식으로 가되, enum 타입명을 ItemUsage로 바꾸라고하네 ㅋㅋㅋ
그러면 유닛한테도 자기가 어떤 유닛인지를 데이터로 설정해야하는데, HeroClass랑 ItemUsage를 따로 관리할수도 없고... 딱 판단이 안서네
이건 비트플래그가 낫지 싶은데 3,4,5번 직업만 착용 가능, 5,8번 직업만 착용 가능, 1번 직업만 착용 가능 이런 식으로 구성할 거라면
유니티 인스펙터에서 레이어 설정하듯이