Unity의 동작 원리

MONA·2024년 4월 21일

나혼공

목록 보기
20/92

상속, 재사용

상속

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

부모 클래스: 기초를 제공하는 클래스 -> 자식 클래스: 부모 클래스를 상속해 확장한 클래스
상속을 이용해 모든 코드를 하나하나 구현할 것이 아니라 공통된 클래스를 만들어두고 그를 받아 확장하는 방법을 이용할 수 있다.

상속의 한계

코드 재사용이 어려워지는 케이스도 있다.

컴포넌트 패턴

미리 만들어진 부품을 조립해 완성된 오브젝트를 만드는 방법.컴포지션 패턴이라고도 함.

컴포넌트 : 미리 만들어진 부품

유니티는 게임 오브젝트를 컴포넌트 패턴을 사용해 만든다.

컴포넌트 방식의 장점

  1. 유연한 재사용 가능
    • 상속만으로는 하위 클래스가 상위클래스에서 불필요한 기능까지 모두 가져와 수정하는 경우가 있다. 컴포넌트 방식에서는 필요한 컴포넌트만 골라 적용할 수 있다.
  2. 기획자의 프로그래머 의존도가 낮아짐
    • 기획자는 미리 만들어진 컴포넌트를 조립해 게임 오브젝트를 만들 수 있다.
  3. 기능 추가와 삭제가 쉬움
    • 각각의 컴포넌트는 독립적이기에 기능의 수정이 쉽다.

컴포넌트의 독립성

  • 게임 오브젝트는 빈 껍데기다
    - 몇가지 식별 기능, 자신에게 조립된 컴포넌트가 뭔지 알 수 있는 기능을 제하면 특별한 기능이 없다.
  • 컴포넌트는 스스로 동작하는 독립적인 부품이다
    - 컴포넌트의 기능은 컴포넌트 내부에서 완성되어 있기 때문에 서로 의존관계가 없다. 게임 오브젝트에 어떤 컴포넌트를 조립하거나 제거해도 다른 컴포넌트에는 전혀 문제가 없다.

메시지와 브로드캐스팅

MonoBehaviour

유니티에서 미리 만들어 제공하는 클래스. 컴포넌트에 필요한 기본 기능 제공. 이를 상속한 클래스는 게임 오브젝트에 컴포넌트로서 추가될 수 있음

유니티의 모든 컴포넌트는 MonoBehaviour 클래스를 상속받음. 이를 상속받은 컴포넌트는 유니티의 제어를 받기 때문에 유니티의 메시지를 들을 수 있게 된다.

Message & BroadCasting

컴포넌트는 서로에 대해 모른다. 유니티 엔진도 어떤 게임 오브젝트에 어떤 컴포넌트가 추가되었는지 관심없다.
유니티는 컴포넌트의 어떤 기능을 실행시키고 싶을 때 메시지를 날리는 방식을 사용한다.
모든 오브젝트가 메시지를 수신하고, 본인이 가지고 있는 기능이라면 실행하고 그렇지 않다면 무시한다

메시지 방식의 특징

  • 메시지를 보내는 쪽은 누가 수신할 지 모르고 신경쓰지도 않는다
  • 메시지를 받는 쪽도 누가 보냈는지 관심이 없다
  • 메시지를 받았을 때 메시지에 명시된 기능이 있으면 실행하고, 없으면 무시한다

이러한 특성으로 컴포넌트의 독립성이 유지된다. 이렇게 메시지를 무차별적으로 여러 오브젝트에 동시에 뿌리는 방법을 브로드캐스팅이라고 한다.

Unity Event Method

유니티 메시지에 의해 자동으로 실행되는 메서드. 유니티 이벤트 함수 또는 유니티 이벤트 메서드라고 함

profile
고민고민고민

0개의 댓글