Version: Unity 6.0 (6000.0)
언어 : 한국어
Best practices for calling Java/Kotlin code
Android 애플리케이션 엔트리 포인트

Unity를 Android 애플리케이션에 통합

이 페이지에서는 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__여러 빌드 프로세스를 자동화하는 Android 빌드 시스템입니다. 이러한 자동화로 인해 많은 일반적인 빌드 오류가 발생할 가능성이 감소합니다. 자세한 정보
See in Glossary
변경을 사용해야 합니다.

작동 방식

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 또는 UnityPlayer.unload()가 Unity 플레이어를 언로드할 때 애플리케이션이 IUnityPlayerLifecycleEvents.onUnityPlayerUnloaded를 호출합니다. 이렇게 하면 Unity 플레이어가 모든 씬을 언로드하지만 나머지는 메모리에 로드된 상태로 유지되는 일시 정지 상태가 됩니다.
  • Quit - Unity 플레이어가 종료되면 애플리케이션이 IUnityPlayerLifecycleEvents.onUnityPlayerQuitted를 호출합니다. Unity를 실행 중인 프로세스는 호출 후 종료됩니다.

IUnityPlayerLifecycleEvents의 인스턴스를 UnityPlayer 생성자로 전달하거나 UnityPlayerUnityPlayerActivity의 서브 클래스에서 메서드를 오버라이드할 수 있습니다.

제한 사항

Unity는 런타임 라이프사이클을 제어하지 않으므로 Unity as a Library 기능이 일부 사례에서 작동하지 않을 수 있습니다. 알려진 제한 사항은 다음과 같습니다.

  • Unity as a Library는 전체 화면 렌더링만 지원합니다. 하지만 Unity Industry 고객이라면 제한 사항과 기능이 다를 수 있습니다.
  • Unity 런타임의 인스턴스를 두 개 이상 로드하거나 통합할 수 없습니다.
  • 타사 플러그인(네이티브관리형)을 Unity 런타임과 함께 작동하도록 조정해야 할 수 있습니다.
  • Unity as a Library는 Xamarin 앱 플랫폼과 호환되지 않습니다.
  • Unity 런타임 라이브러리를 동적 모듈로 Play Feature Delivery와 통합할 수 없습니다.

추가 리소스

Best practices for calling Java/Kotlin code
Android 애플리케이션 엔트리 포인트