본문 바로가기

- GameProgramming/ └ Tiny Mode

★ 3. Unity Tiny Mode [2-1] - 개발자를 위한 소개.

반응형

Unity Engine Tiny Mode


[2-1] - 개발자를 위한 소개.


만일 이미 유니티를 사용하여 게임이나 앱을 개발한 경험이 있다면, 이미 Tiny Mode에서 개발하는 중이라고 말할 수 있습니다.

이번 포스팅에서는 일반 Unity 와 Tiny Mode에서 작동하는 부분에서 유사점과 차이점에 대해 중점적으로 설명하겠습니다.


일단 Tiny Mode는 Unity Editor 컨텍스트 내에서 작동하며, Unity의 많은 표준 기능을 직접 사용하거나 복제합니다.

예를 들어, 프로젝트 창 사용, 에셋 가져오기, 씬 탐색, 인스펙터, 에셋 가져오기와 같은 기본적인 개발 작업은 Tiny Mode와 Unity 기본 기능을 보았을 때 매우 유사합니다.


그러나, 이미 친숙한 많은 워크플로나 기능은 Tiny Mode에서 전혀 다르거나 전혀 지원되지 않는 것도 있습니다.

가장 중요한 점은 Tiny Mode는 2D Sprite 기반 렌더링만 지원하므로 3D 렌더링 기능이 없다는 것입니다.

3D 렌더링, 내비게이션, 지형, 멀티 플레이어, 세부 물리 등의 기능의 누락으로 Tiny Mode가 이렇게 작은 프린트로 게임 및 앱을 만들수 있게 해주기 때문에 이렇게 설계된 것입니다.


프로젝트에 Tiny Mode를 사용할지 여부에 대한 결정은 현재 만들고 있는 게임이나 앱의 종류, 그리고 목표로 삼을 플랫폼의 특징과 제한에 따라 크게 좌우될 것입니다.


콘솔, MacOS 또는 Windows, VR, 독립 실행형 스마트폰 릴리즈를 위한 게임이나 앱을 만들 경우, Tiny Mode가 최선의 선택이 아닐 수 있습니다.

그러나 파일 크기와 메모리 공간이 매우 작은 메신저 게임, 광고 또는 기타 HTML5 프로젝트를 만들고싶다면, Tiny Mode가 올바른 선택이 될 수 있습니다.


Tiny Mode에서 해당 기능을 가진 Unity 기능 및 워크플로우의 목록은 아래의 링크를 참조하시면 됩니다.

https://docs.unity3d.com/Packages/com.unity.tiny@0.13/manual/compatibility.html



Tiny Mode는 일반 Unity 와 어떻게 다른지에 대해 알아보겠습니다.


1. ECS가 사용됨


기술적인 측면에서 볼 때 가장 중요한 차이점은 Tiny Mode가 Entity Component System (ECS) 패턴의 사용을을 시행한다는 것입니다.

ECS는 상당한 성능상의 이점을 제공하지만 ECS를 사용하여 프로젝트의 전부 또는 일부를 구성할 수 있는지 여부는 선택할 수 있습니다.

ECS는 Tiny Mode의 기본이며 선택 사항이 아니므로 ECS 원칙에 따라 프로젝트를 작성해야합니다.


이전에 Unity 를 사용했지만 ECS를 사용하지 않았다면 ECS 의 기본 개념을 숙지하셔야합니다.

아래 위키피디아 링크에서 ECS에 대해 알아보실 수 있습니다.

https://en.wikipedia.org/wiki/Entity%E2%80%93component%E2%80%93system



2. Tiny Mode Project (초소형 모드 프로젝트)


Tiny Mode 프로젝트는 일반 Unity 프로젝트 내에서 하나의 Unity Project가 여러 개의 Tiny Mode 프로젝트를 포함할 수 있음을 의미하는 특별한 Asset으로 표현됩니다.

일반적으로 Unity Editor는 한 번에 하나의 프로젝트만 열 수 있습니다. 그러나 Tiny Mode 프로젝트는 ".utproject" 파일 이름의 접미사가 있는 에셋 파일로 표시됩니다.

Tiny Mode 프로젝트 파일에는 Tiny Mode 프로젝트에서 사용되는 Tiny Mode 모듈과 디스플레이 크기와 같은 Tiny Mode와 관련된 다양한 설정 정보가 들어있습니다.



3. 계층 창 (하이어라키 창)


Tiny Mode 에서 하이어라키 창을 사용할 때 약간의 차이가 있습니다.



계층 구조의 장면 및 게임 객체 대신 Entity 그룹 및 Entity 가 있습니다.

이것은 Scenes 및 GameObjects 와 유사한 방식으로 나열됩니다.

EntityGroups 는 Scene과 유사하며 Entity 는 GameObject 와 유사하며 그룹 내에서 계층적 관계로 정렬될 수 있지만 아래 설명된 차이점을 기억하는 것이 중요합니다.



4. Entity Components VS GameObject Components


Tiny Mode 의 Entity 구성요소와 일반 Unity GameObject 구성 요소간의 유사성은 강력합니다.

일반적인 Unity 구성 요소와 마찬가지로 Camera 렌더링, 충돌, 오디오, 파티클, UI 등과 같은 기능을 포함하고 GameObject 에 내장 구성요소를 추가하는 것처럼 인스펙터의 Entity 에 추가할 수 있는 다양한 내장 Tiny Mode 컴포넌트가 있습니다.

또한 일반 Unity MonoBehaviours와 유사하게 사용자 정의 구성 요소를 직접 생성하여 Entity 에 추가할 수도 있습니다.


그러나 몇 가지 중요한 차이점이 있습니다.

Tiny Mode 구성 요소는 순숳수한 데이터 컨테이너입니다.

int, float, Vectors, Colors, Strings 및 enum 과 같은 이름이 지정된 관련 데이터 집합을 포함할 수 있지만 코드를 포함 할 수는 없습니다.

이것은 데이터와 코드를 모두 포함할 수 있는 일반적인 Unity 구성 요소와는 대조적입니다.

이는 빠른 성능과 빠른 런타임을 달성하기 위한 Tiny Mode 가 따르는 ECS 패턴의 일부입니다.


또 다른 중요한 차이점은 Entity 에 동일한 유형의 구성 요소를 두 개 이상 추가할 수 없다는 점입니다.



5. Entity Groups VS Scenes


Tiny Mode는 일반적인 Unity Scene 을 사용하지 않습니다.

대신 Entity Group 을 사용합니다. 이것들은 Scene 과 유사하며, Scene 과 같이 내용의 계층적인 구조를 가지고 있지만 GameObject 가 아닌 Entities 만을 포함할 수 있습니다.


주어진 시간에 다중 장면 편집과 유사한 방법으로 계층 구조에 여러 개의 Entity Group을 가질 수 있으며 런타임에 Entity Group을 로드하거나 언로드 할 수 있습니다.


Entity Group은 프로젝트에 에셋으로 저장되지만 Unity Scene 과 동일하지 않습니다.

파일 형식이 다르며 파일 이름 확장자가 다릅니다. (.utdata)



6. 인스펙터 창


Tiny Mode에서 Entity를 검사할 때 Inspector 창에는 GameObject에 부착됨 구성 요소를 보는 것과 매우 유사한 방식으로 해당 Entity에 연결된 Tiny Mode 구성 요소가 표시됩니다. 일반적인 Unity 구성 요소와 비슷하지만 동일하지 않는 내장형 Tiny Mode 구성 요소가 많이 있습니다.


예를 들어, Tiny Mode 에는 일반적인 Unity SpriteRenderer 구성 요소와 비슷한 자체 Sprite2DRenderer 구성 요소를 가지고 있지만 실제로는 다른 기능 집합을 가진 별도의 클래스입니다.


애니메이션, 물리, 타일 맵, 오디오 등과 관련된 Tiny Mode의 다른 유사한 구성 요소가 있습니다.

그러나 이러한 시스템을 일반 Unity 에서 잘 알고 있다고 하더라도, 큰 차이가 있기 때문에 Tiny Mode 구성 요소에 대한 설명서를 주의 깊게 보아야합니다.


또한, 인스펙터 창에서 Entity 의 구성 요소를 볼 때 Tiny Mode 는 일반적인 Unity 에 없는 구성 요소 패밀리의 개념을 사용합니다.

컴포넌트 패밀리는 일반 Unity 에서 단일 컴포넌트로 볼 것으로 기대하는 관련 기능 그룹입니다.

필요에 따라 개별 부품을 포함하거나 생략할 수 있도록 Tiny Mode 로 분리됩니다.

Tiny Mode 의 관리자는 모든 구성 요소를 개별적으로 표시하거나 관련 구성요소가 단일 구성 요소인 것처럼 보이도록 패밀리 그룹에 구성 요소를 표시할 수 있습니다.



7. 시작 버튼


Tiny Mode 에서는 Play 버튼을 눌러 집기에서 프로젝트를 미리 볼 수 없습니다.

대신 재생 버튼을 누르면 프로젝트 빌드를 내보내는 것과 동일한 작업을 수행합니다.


재생 버튼을 누르면 Tiny Mode 가 프로젝트의 빌드를 빠르게 만들고 기본 웹 브라우저에서 실행합니다.



반응형