Unity를 Android 애플리케이션에 통합
Explains how to integrate the Unity Runtime Library into Android applications.
읽는 시간 2분최근 업데이트: 한 달 전
이 페이지에서는 Unity as a Library 기능을 사용하여 Unity 런타임 라이브러리를 Android 애플리케이션에 통합하는 방법을 설명합니다.
이 기능을 사용하여 3D/2D 실시간 렌더링, AR 경험, 3D 모델 상호 작용, 2D 미니 게임 등 Unity 기반 기능을 애플리케이션에 포함할 수 있습니다. Unity 런타임 라이브러리는 컨트롤을 노출하여 애플리케이션 안에 콘텐츠를 로드하고, 활성화하고, 언로드하는 시기와 방법을 관리합니다.
중요: 프로젝트에 Unity as a Library를 도입하려면 Android에서 제대로 작동하도록 네이티브 및 관리형 플러그인을 조정해야 할 수 있습니다. Gradle 매니페스트를 변경하는 플러그인은 네이티브 iOS/Android 앱의 Unity as a library 사용에 설명된 Gradle 변경을 사용해야 합니다.
작동 방식
Unity에서 Gradle 프로젝트를 빌드하는 경우 다르게 작업할 필요가 없습니다.
Unity가 생성하는 모든 Android Gradle 프로젝트의 구조는 다음과 같습니다.
- 다른 Gradle 프로젝트에 통합할 수 있는 unityLibrary 모듈의 라이브러리 부분입니다. 여기에는 Unity 런타임 및 플레이어 데이터가 포함되어 있습니다.
- 애플리케이션 이름과 해당 아이콘이 포함되어 있는 launcher 모듈의 경량 런처 부분입니다. Unity를 실행하는 간단한 Android 애플리케이션입니다. 이 모듈을 자체 애플리케이션으로 교체할 수 있습니다.
Unity를 또 다른 Android Gradle 프로젝트에 통합하려면 생성된 Android Gradle 프로젝트의 unityLibrary 모듈을 settings.gradle 파일을 통해 Android Unity 프로젝트에 포함해야 합니다.
이 저장소에는 Unity를 Android 앱에 통합하는 방법을 설명하는 예시 프로젝트 및 플러그인과 상세한 기술 자료가 포함되어 있습니다.
플레이어를 제어하려면 목적을 전달하여 Unity 활동을 시작하고 필요한 경우 이를 확장합니다. 자세한 내용은 목적 및 목적 필터에 대한 Android 개발자 문서를 참조하십시오. UnityPlayer Java API를 사용할 수도 있습니다.
IUnityPlayerLifecycleEvents
IUnityPlayerLifecycleEvents는 Unity 플레이어의 두 가지 중요한 라이프사이클 이벤트와 상호 작용하기 위한 수단을 제공합니다.
- Unload - 또는
Application.Unload가 Unity 플레이어를 언로드할 때 애플리케이션이UnityPlayer.unload()를 호출합니다. 이렇게 하면 Unity 플레이어가 모든 씬을 언로드하지만 나머지는 메모리에 로드된 상태로 유지되는 일시 정지 상태가 됩니다.IUnityPlayerLifecycleEvents.onUnityPlayerUnloaded - Quit - Unity 플레이어가 종료되면 애플리케이션이 를 호출합니다. Unity를 실행 중인 프로세스는 호출 후 종료됩니다.
IUnityPlayerLifecycleEvents.onUnityPlayerQuitted
IUnityPlayerLifecycleEventsUnityPlayerUnityPlayerActivity제한 사항
Unity는 런타임 라이프사이클을 제어하지 않으므로 Unity as a Library 기능이 일부 사례에서 작동하지 않을 수 있습니다. 알려진 제한 사항은 다음과 같습니다.
- Unity as a Library는 전체 화면 렌더링만 지원합니다. 하지만 Unity Industry 고객이라면 제한 사항과 기능이 다를 수 있습니다.
- Unity 런타임의 인스턴스를 두 개 이상 로드하거나 통합할 수 없습니다.
- 타사 플러그인(네이티브 및 관리형)을 Unity 런타임과 함께 작동하도록 조정해야 할 수 있습니다.
- Unity as a Library는 Xamarin 앱 플랫폼과 호환되지 않습니다.
- Unity 런타임 라이브러리를 동적 모듈로 Play Feature Delivery와 통합할 수 없습니다.