유니티(Unity)/기본

유니티 개발 공부(3) 컴포넌트

Whiny 2021. 4. 19. 12:47

컴포넌트를 설명하기 앞서 상속(Inheritance)에 관해 간단히 집고 넘어가겠습니다.

 

상속은 기존에 만들어진 클래스에 새로운 코드와 기능을 덧붙여 새로운 클래스를 만드는 방법입니다.

 

여기서 기존에 만들어진 클래스를 부모 클래스, 상속받아 확장한 클래스를 자식 클래스라고 합니다.

 

아래 예시를 보겠습니다.(게임 오브젝트라고 가정하겠습니다.)

생명체가 부모, 사람과 나무가 자식

 

생명체라는 클래스를 상속받아서 사람과 나무라는 자식 클래스를 구현하였습니다.

 

이런 식으로 부모 클래스에서 자식 클래스에 공통적으로 필요한 기능을 구현하여 코드의 재사용이라는 측면에서 상속은 굉장히 편리하고 좋습니다.

 

하지만, 나중에 구현할 자식 클래스에 무엇이 필요한지 처음부터 정확히 추측하여 부모 클래스를 구현하는 것은 굉장히 어렵습니다. 자식 클래스가 부모 클래스가 가진 기능이 필요 없는 경우도 있습니다. 게다가 자식 클래스와 부모 클래스의 기능이 충돌할 가능성도 있습니다.

 

또한, 상속에 의존하면 새로운 오브젝트를 만들때 다른 클래스를 새로 구현해야 하는 경우도 많이 생깁니다.,

 

결론적으로, 상속에만 의존하면 코드의 재사용에 어려움을 겪을 수 있다는 것입니다.

 


 

이제부터는 컴포넌트에 관해 설명하겠습니다.

 

컴포넌트(Component)란 구성 요소라는 뜻입니다.

 

정말 간단히 컴포넌트 패턴을 설명하자면, 미리 만들어진 여러 부품들을 조립해서 완성된 오브젝트를 만드는 방식입니다.

 

아래 예시를 보겠습니다.

 

위의 예시는 이전에 구현했던 사람과 나무를 컴포넌트 방식으로 다시 구현해본 것입니다.

 

'사람'이라는 빈 오브젝트에 체력, 크기, 무게, 등등의 컴포넌트들을 채워 넣어 사람의 기능을 구현한 것입니다.

 

나무도 마찬가지입니다.

 

결론적으로, 컴포넌트 패턴은 미리 만들어진 컴포넌트(부품)을 빈 껍데기인 게임 오브젝트에 조립하는 것입니다.

 

이 방식의 장점은,

 

1. 재사용에 유연하다. - 원하는 컴포넌트를 선택해 조립해서 버려지는 코드가 적다.

2. 새로운 오브젝트를 만드는게 쉽다. - 준비된 컴포넌트들을 조립하면 새로운 오브젝트를 쉽게 만들 수 있다.

3. 독립성 덕분에 기능의 추가와 삭제가 쉽다. - 각 컴포넌트들이 다른 컴포넌트에 크게 의존하지 않아 추가나 삭제할 때 다른 기능이 쉽게 망가지지 않는다.

 

는 것입니다.

 

이론적인 부분은 여기서 마치고, 다음 포스팅에서 에디터 상에서 컴포넌트가 어떻게 보이는지, 유니티의 대표적인 컴포넌트의 기능동작 원리에 관해 설명하겠습니다.