3장 - 1 : 유니티의 상속과 재사용
유니티 컴퓨넌트 기반 구조를 이해하기 위해서는 코드를 재사용하는 전통적 방법인 '상속'을 알아야한다.
✍상속 : 이미 만들어진 클래스에 새로운 코드와 기능을 덧붙여 새로운 클래스를 만드는 방법
클래스란? 묘사할 대상과 관련된 코드를 묶는 틀
① 몬스터(Monster) 클래스 구현
class Monster 의 필수 기능
> 인공지능 기능
> 애니메이션 기능
> 공격과 방어 기능
> 물리 기능
> 기타 필수 기능
Monster 클래스는 여러 종류의 몬스터 클래스를 구현할 때 필요한 기초를 제공하는 부모 클래스
오크, 거미, 악마 등 '파생' 몬스터는 클래스를 확장 하여 만듦.
② 몬스터를 기반으로 오크(Orc) 클래스 구현
class Orc : Monster
// 이미 Monster에서 구현한 기능을 상속하였으므로 고유 기능에만 집중
> 초록색 피부
> 오크의 애니메이션
> 오크의 스킬
> 그외 오크의 고유 기능
③ 오크를 기반으로 오크 대장(Orc Chieftan) 클래스 구현
class OrcChieftan : Orc
// Orc 클래스를 상속해 오크의 모든 기능을 가지고 있으므로 몇가지만 추가
> 대장 모자
> 새로운 무기와 강력한 스킬
> 그외 오크 대장의 고유 기능
때로는 상속을 사용하면 오히려 비효율적인 코드가 되기도 한다.
① 최상위 부모 부모 클래스인 사람(Human) 클래스 구현
class Human
// 사람 형태를 가진 클래스의 부모 클래스
> 모습을 그려주는 렌더 기능
> 물리 기능
> 애니메이션 기능
> 체력 기능
> 기타 필수 기능
② 플레이어(Player) 클래스 구현
class Player : Human
// 플레이어가 조작하는 캐릭터인 Player 클래스는 Human 클래스를 상속하였으므로 Player 고유 기능 추가
> 조작 기능
> 공격 기능
> 직업 기능
> 그외 필수 기능
③ NPC 클래스 구현
class NPC : Human
// NPC 클래스는 Human 클래스의 물리/체력 기능이 필요 없으므로 삭제해야함
> 물리 기능 삭제
> 체력 기능 삭제
> 대화 기능 추가
> 거래 기능 추가
✍ 상속에만 의존하면 오히려 기존 코드를 재사용하기 힘들고, 추가 작업이 생길 수 있음.
✍ 기획자가 새로운 오브젝트를 만들려면 프로그래머에 의존해야 함.
오늘은 클래스의 상속과 그 한계에 대해서 정리해보았다. 클래스를 구성할 때 가장 중요한 것은 지금 구현하는 부분에 가장 효율적인 구성 방법을 생각해 이용하는 것 같다.