유니티 공부 #3

김유원·2021년 4월 23일
0

유니티_공부

목록 보기
3/7
post-thumbnail

'레트로의 유니티 게임 프로그래밍 에센스' 1부

3장 - 1 : 유니티의 상속과 재사용

#상속과 재사용

유니티 컴퓨넌트 기반 구조를 이해하기 위해서는 코드를 재사용하는 전통적 방법인 '상속'을 알아야한다.

상속 : 이미 만들어진 클래스에 새로운 코드와 기능을 덧붙여 새로운 클래스를 만드는 방법

클래스란? 묘사할 대상과 관련된 코드를 묶는 틀

  • 부모 클래스 > 기초를 제공하는 클래스
  • 자식 클래스 > 부모 클래스를 상속해서 확장한 클래스

1) 상속으로 몬스터 만들기

① 몬스터(Monster) 클래스 구현

class Monster 의 필수 기능

> 인공지능 기능
> 애니메이션 기능
> 공격과 방어 기능
> 물리 기능
> 기타 필수 기능

Monster 클래스는 여러 종류의 몬스터 클래스를 구현할 때 필요한 기초를 제공하는 부모 클래스

오크, 거미, 악마 등 '파생' 몬스터는 클래스를 확장 하여 만듦.

② 몬스터를 기반으로 오크(Orc) 클래스 구현

class Orc : Monster
// 이미 Monster에서 구현한 기능을 상속하였으므로 고유 기능에만 집중

> 초록색 피부
> 오크의 애니메이션
> 오크의 스킬
> 그외 오크의 고유 기능

③ 오크를 기반으로 오크 대장(Orc Chieftan) 클래스 구현

class OrcChieftan : Orc
// Orc 클래스를 상속해 오크의 모든 기능을 가지고 있으므로 몇가지만 추가

> 대장 모자
> 새로운 무기와 강력한 스킬
> 그외 오크 대장의 고유 기능

2) 상속의 한계

때로는 상속을 사용하면 오히려 비효율적인 코드가 되기도 한다.

① 최상위 부모 부모 클래스인 사람(Human) 클래스 구현

class Human
// 사람 형태를 가진 클래스의 부모 클래스

> 모습을 그려주는 렌더 기능
> 물리 기능
> 애니메이션 기능
> 체력 기능
> 기타 필수 기능

② 플레이어(Player) 클래스 구현

class Player : Human
// 플레이어가 조작하는 캐릭터인 Player 클래스는 Human 클래스를 상속하였으므로 Player 고유 기능 추가

> 조작 기능
> 공격 기능
> 직업 기능
> 그외 필수 기능

③ NPC 클래스 구현

class NPC : Human
// NPC 클래스는 Human 클래스의 물리/체력 기능이 필요 없으므로 삭제해야함

> 물리 기능 삭제
> 체력 기능 삭제
> 대화 기능 추가
> 거래 기능 추가

✍ 상속에만 의존하면 오히려 기존 코드를 재사용하기 힘들고, 추가 작업이 생길 수 있음.
✍ 기획자가 새로운 오브젝트를 만들려면 프로그래머에 의존해야 함.

오늘은 클래스의 상속과 그 한계에 대해서 정리해보았다. 클래스를 구성할 때 가장 중요한 것은 지금 구현하는 부분에 가장 효율적인 구성 방법을 생각해 이용하는 것 같다.

profile
개발 공부 블로그

0개의 댓글

관련 채용 정보