강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

MOOOON님의 프로필 이미지
MOOOON

작성한 질문수

[유니티 레벨 업!] 모듈식으로 개발하는 스킬 시스템

SkillData 구조체 질문

작성

·

81

0

갑자기 궁금해져서 질문드려봅니다.

 

SkillData, EffectData등이 struct로 구현되어 있는데,

struct 내부에 참조타입이 많은 상황이잖아요?

 

이럴 경우 struct 내부의 참조타입이 얕은 복사가 일어날 수 있어 에디터의 추가 버튼에서 DeepCopySerializeReference 메소드를 구현해 사용 중인 것 같은데,

SkillData, EffectData등을 class로 구현해 IClonable을 상속받아 Clone 메소드로 추가시키는 것과 어떤 차이가 있을지, struct로 구현을 하신 이유가 있는지 등이 궁금합니다.

답변 1

0

Developer G님의 프로필 이미지
Developer G
지식공유자

수강해주셔서 감사합니다.

기본적인 이유는 객체 외부에서 Data를 함부로 수정하지 못하게 하기 위함이구요, 부가적으론 Data 객체들은 이름 그대로 별 다른 동작 없이 내부에서만 제어될 Data의 묶음일 뿐이고, 이런 Data 객체들은 struct를 사용하는게 권장되서 그렇습니다.

다만, 이는 제 Coding Style일 뿐 절대적인게 아니기 때문에, 판단 하에 class가 낫다고 생각이 드신다면 당연히 class 객체로 바꾸셔도 상관 없습니다.

감사합니다.

MOOOON님의 프로필 이미지
MOOOON

작성한 질문수

질문하기