카드게임을 만들고 있읍니다
카드 클래스를 만들어서 공통적인 함수나 필드를 정의하고 이 카드 클래스를 하수인/주문/적 캐릭터 카드 클래스가 상속받아서 추가적인 로직들을 구현해 놨어요(주문카드면 주문 시전 같은거)
근데 이제 카드에 공/체 스탯을 넣으려고 생각해보니 당연히 주문 카드는 스텟이 필요 없고, 하수인/적 캐릭터 카드는 스텟이 필요하잖아요?
그래서
1. 스텟 관련 로직(피해 줌, 피해 입음, 공증, 공감 등등..)을 별개 스크립트로 분리해서 Start()에서 자동으로 컴포넌트 붙이게 하기
2. 상속 구조를 바꿔서 적 캐릭터 카드는 하수인 카드 클래스를 상속받게 바꾸기(스텟은 하수인 클래스에서 구현)
3. 스텟은 하수인에서만 구현하고, 적 캐릭터 클래스는 카드와 별개로 구현하기
정도를 생각해 봤는데 이런 식으로 해결하는 게 맞는 걸까요?
마음은 스크립트 분리 쪽으로 기우는데 그냥 구조 자체가 엉망인건가 싶어서요
- dc official App
객체지향방법론 한번 보면 좋을듯, 잘 모르겠으면 너가 생각하는 명세들을 A is B (상속), A has C (구성요소-컴퍼넌트)식으로 보고 구조를 나눠보면 어떨까 사실 이 부분은 개발하다보면 그냥 본능적으로 하게되는 영역이긴 한데, 애매할땐 한번 본인의 요구사항을 나열해보고 거기서 시작해보는것도 좋음
A has B니까 컴포넌트로 분리하는게 맞겠네요 감사합니다 - dc App
저같으면 인터페이스로 처리할듯 아님 상속을 두세단계로나눠도 되지 대분류 카드 중분류 캐릭터 주문 등등 소분류에 개별카드 이런식으로
인터페이스로 처리해도 상속받는 클래스는 인터페이스에서 정의된 모든 메서드랑 속성을 구현해야 하지 않나요? 사실 초보라 인터페이스랑 가상 클래스의 차이점을 잘 못느끼겠어서.. - dc App
상속은 세무사쪽에 문의하시는게 좋습니다. - dc App
세무사는 비싸잔아요 - dc App
하스스톤 같은 게임이라면 저는 하수인 카드랑 하수인을 분리해서 개발할 것 같아요. 하수인 카드는 카드를 상속 받고 하수인 카드는 하수인을 소환하는 방식으로 개발 할 것 같아요. =)
하스스톤이랑 비슷하긴 하지만, 하수인과 주문의 실행 로직을 통일시켜 놓아서 하수인을 분리시키는건 좀 복잡할것같아요 - dc App