Android XR 기반Samsung Galaxy XR이 출시되었습니다! 이 블로그 게시물은 Android XR Spotlight Week의 일부로, Android XR용 앱을 학습, 빌드, 준비하는 데 도움이 되도록 설계된 리소스(블로그 게시물, 동영상, 샘플 코드 등)를 제공합니다.
지금이야말로 XR 개발을 시작할 적기입니다. 지난해 12월, Google은 Android XR을 발표했습니다. 이는 OpenXR 및 Vulkan과 같은 개방형 표준을 기반으로 빌드된 Google의 새로운 Android 플랫폼으로, XR 개발에 그 어느 때보다 쉽게 액세스할 수 있도록 합니다.
또한 Unity의 기존 XR 도구와 결합하면 강력하고 성숙한 개발 스택을 얻을 수 있습니다. 이를 통해 여러 기기에서 작동하는 XR 앱을 만들고 배포할 수 있습니다.
이전에 XR 개발을 해본 적이 있는지 여부와 관계없이 Google은 개발을 시작할 수 있도록 지원하고자 합니다.
이 블로그에서는 Android XR 및 Unity 개발을 시작하고 실행하는 방법을 알아봅니다. 환경 구성, 패키지 생태계 이해, 빌드 시작을 위한 실용적인 단계에 중점을 둘 것입니다.
이 블로그를 마치면 다음을 잘 이해하게 됩니다.
- 패키지 생태계
- 필수 설정 단계
- 입력 방법
- 개인 정보 보호 및 권한
- 구성 레이어
Android XR 개발용 Unity
교차 플랫폼 호환성을 위해 Unity를 선택하여 한 번 빌드하고 Android XR 및 기타 XR 기기에 배포할 수 있습니다.
Unity를 사용하면 성숙한 XR 생태계와 도구를 활용할 수 있습니다. 이미 XR Interaction Toolkit, OpenXR 플러그인, XR 구성 레이어, XR Hands, XR 지원 구성요소와 템플릿으로 가득한 광범위한 애셋 스토어, XR 시뮬레이션 및 테스트 도구와 같은 기존 패키지가 있습니다. 또한 지난 11월에 Unity 6이 출시되었으므로 개선된 URP (범용 렌더링 파이프라인) 성능, 더 나은 Vulkan 그래픽 지원, 향상된 빌드 프로필을 활용할 수 있습니다.
다음은 수행할 수 있는 작업을 파악하기 위한 샘플 프로젝트입니다.
필수 설정: 개발 기반
Unity 6 요구사항 및 설치
이전 버전에서는 Android XR을 지원하지 않으므로 앱을 만들려면 Unity 6이 필요합니다. 먼저 Unity Hub를 설치한 다음 다음 단계에 따라 Android Build Support 모듈이 포함된 Unity 6을 설치합니다.
Android XR 빌드 프로필: 구성 간소화
Unity 빌드 프로필은 플랫폼별 설정과 구성을 저장하는 프로젝트 애셋입니다. 따라서 여러 메뉴에서 15~20개의 다양한 설정을 수동으로 설정하는 대신 빌드 프로필을 사용하여 자동으로 설정할 수 있습니다.
자체 빌드 프로필을 만들 수 있지만 지금은 Google에서 만든 전용 Android XR 빌드 프로필을 사용하는 것이 좋습니다.
Unity 프로젝트에서 File(파일) > Build Profile(빌드 프로필)을 선택하여 빌드 프로필을 선택할 수 있습니다. 자세한 안내는 Android XR용 개발 워크플로 페이지를 참고하세요.
자체 변경사항을 적용한 후 새 빌드 프로필을 만들어 팀과 공유할 수 있습니다. 이렇게 하면 전반적으로 일관된 빌드 환경을 보장할 수 있습니다.
이 단계를 완료한 후 Android XR 기기용 APK를 빌드하고 실행할 수 있습니다.
그래픽 API: Vulkan이 중요한 이유
Android XR 빌드 프로필로 Unity 프로젝트를 설정한 후 먼저 Vulkan이 그래픽 API로 설정되어 있는지 확인하는 것이 좋습니다. Android XR은 Vulkan 우선 플랫폼으로 빌드됩니다. 2025년 3월, Google은 Vulkan이 이제 Android의 공식 그래픽 API라고 발표했습니다. Vulkan은 개발자가 최신 GPU의 성능을 극대화하고 레이 트레이싱 및 멀티 스레딩과 같은 고급 기능을 활용하여 현실감 있고 몰입감 있는 게임 시각 효과를 구현할 수 있도록 지원하는 최신 저수준 그래픽 API입니다.
이러한 표준은 기존 애플리케이션에 최적의 호환성을 제공하고 포팅 문제와 비용을 줄여줍니다. 또한 URP 애플리케이션 공간 워프 및 시선 추적 렌더링과 같은 고급 Android XR 기능을 사용 설정할 수 있습니다.
Unity 6은 Vulkan을 자동으로 처리하므로 Android XR 빌드 프로필을 사용하면 Unity에서 Vulkan을 그래픽 API로 구성합니다. 이렇게 하면 수동 구성 없이 모든 고급 Android XR 기능에 액세스할 수 있습니다.
그래픽 API 설정을 확인하려면 'Edit'(수정) > 'Project Settings'(프로젝트 설정) > 'Player'(플레이어) > 'Android tab'(Android 탭) > 'Other settings'(기타 설정) > 'Graphics APIs'(그래픽 API)로 이동하세요.
패키지 생태계 이해
Unity에서 Android XR에 사용할 수 있는 두 가지 패키지가 있습니다. 하나는 Unity용 Android XR 확장 프로그램을 사용하는 것이고 다른 하나는 Unity OpenXR: Android XR 패키지를 사용하는 것입니다.
동일한 것으로 들릴 수 있지만 잠시만 기다려 주세요.
Unity OpenXR: Android XR 패키지는 Android XR 지원을 위한 공식 Unity 패키지입니다. OpenXR 표준을 통해 제공되는 대부분의 Android XR 기능을 제공합니다. 또한 혼합 현실 기능을 위한 AR Foundation 통합을 지원합니다. Unity OpenXR: Android XR 패키지를 사용하는 주요 이점은 XR 기기를 지원하는 통합 API를 제공한다는 것입니다.
반면 Unity용 Android XR 확장 프로그램은 Android XR 기기용 개발을 위해 특별히 설계된 Google의 XR 패키지입니다. 환경 혼합 모드, 장면 메시 생성, 이미지 추적, 신체 추적과 같은 추가 기능으로 Unity OpenXR 패키지를 보완합니다. 단점은 Android XR 기기용으로만 개발할 수 있다는 것입니다.
선택하는 패키지는 특정 요구사항에 따라 다르지만 일반적으로 Unity OpenXR: Android XR을 사용하는 것이 좋습니다. 앱과 호환되는 기기에 훨씬 더 많은 유연성을 제공하며 애플리케이션 요구사항에 따라 Unity용 Android XR 확장 프로그램을 추가할 수 있기 때문입니다.
패키지 설치 방법
새 패키지를 추가하려면 Unity에서 프로젝트를 열고 'Window'(창) > 'Package Management'(패키지 관리) > 'Package Manager'(패키지 관리자)를 선택합니다.
여기에서 'Unity Registry'(Unity 레지스트리) 탭에서 다음 패키지를 설치할 수 있습니다.
➕ 아이콘을 선택하고 'Install package from git URL'(Git URL에서 패키지 설치)을 선택한 후 'https://github.com/android/android-xr-unity-package.git'을 입력하여 GitHub를 통해 Unity용 Android XR 패키지를 설치할 수 있습니다.
필수 OpenXR 기능
이제 필요한 패키지가 설치되었으므로 프로젝트가 작동하도록 몇 가지 핵심 기능을 사용 설정해 보겠습니다.
Android용 OpenXR 설정을 사용 설정할 수 있습니다. 'Edit'(수정) -> 'Project Settings'(프로젝트 설정) -> 'XR Plugin Management'(XR 플러그인 관리) -> Android를 클릭하고 OpenXR을 사용 설정
다음으로 'Android XR support'(Android XR 지원)를 사용 설정해야 합니다. 필요한 경우 다른 OpenXR 기능에 관해 설명하겠습니다. 지금은 Android XR 지원을 사용 설정하기만 하면 됩니다.
입력
Android XR은 손, 음성, 시선 추적, 키보드, 컨트롤러 입력을 지원합니다. 시작하기에 가장 적합한 프리팹이 포함되어 있으므로 XR Interaction Toolkit 및 XR Hands를 설치하는 것이 좋습니다. 이러한 프리팹을 사용하면 앱에서 손과 컨트롤러를 지원하는 데 필요한 모든 것을 갖게 됩니다.
XR Hands와 XR Interactive Toolkit이 모두 설치되면 Starter Assets 및 Hands Interaction Demo를 가져오는 것이 좋습니다. 그런 다음 Hand Interaction 및 Khronos Simple Controller 프로필을 사용 설정하고 Hand Tracking Subsystem 및 Meta Hand Tracking Aim 기능을 사용 설정해야 합니다.
'Edit'(수정) > 'Project Settings'(프로젝트 설정) > XR Plug-in Management'(XR 플러그인 관리) > 'OpenXR'
또한 XR 공간에서 사용자의 위치와 방향을 나타내는 Unity의 프리팹인 XR Origin을 사용하는 것이 좋습니다. 여기에는 올바른 관점에서 XR 환경을 렌더링하는 데 필요한 카메라 리그와 추적 구성요소가 포함되어 있습니다.
이 프리팹을 추가하는 가장 간단한 방법은 이전에 가져온 손 통합 데모에서 가져오는 것입니다. 이 프리팹은 'Hands Integration Toolkit'(손 통합 툴킷) > 'Hand Interaction'(손 상호작용) > 'Prefabs'(프리팹) > 'XR Origin'
사용자의 손과 컨트롤러 간에 자동으로 전환되는 XR Input Modality Manager를 사용하므로 게임 객체의 'XR Origin' 옵션 대신 이 프리팹을 사용하는 것이 좋습니다. 이렇게 하면 손과 컨트롤러 간에 전환하는 데 가장 큰 성공을 거둘 수 있습니다.
개인 정보 보호 및 권한: 사용자 신뢰 구축
빌드하는 항목과 관계없이 사용자로부터 런타임 권한을 캡처해야 합니다. 장면 이해, 시선 추적, 얼굴 추적, 손 추적은 사용자에게 더 민감할 수 있는 데이터에 액세스할 수 있기 때문입니다.
이러한 기능은 기존 데스크톱 또는 모바일 앱보다 더 심층적인 개인 정보를 제공하므로 런타임 권한을 통해 사용자는 공유할 데이터를 완전히 제어할 수 있습니다. 따라서 Android의 보안 및 개인 정보 보호 정책을 준수하기 위해 Android XR에는 이러한 각 기능에 대한 권한이 있습니다.
예를 들어 맞춤 손동작에 XR Hands 패키지를 사용하는 경우 이 패키지에서 사용자의 손에 관한 많은 정보를 추적해야 하므로 손 추적 권한을 요청해야 합니다 (아래 참고). 여기에는 손 관절 포즈, 각속도 및 선속도 추적과 같은 항목이 포함됩니다.
참고: 권한이 필요한 확장 프로그램의 전체 목록은 XR 개발자 웹사이트에서 정보를 확인하세요.
const string k_Permission = "android.permission.HAND_TRACKING"; #if UNITY_ANDROID void Start() { if (!Permission.HasUserAuthorizedPermission(k_Permission)) { var callbacks = new PermissionCallbacks(); callbacks.PermissionDenied += OnPermissionDenied; callbacks.PermissionGranted += OnPermissionGranted; Permission.RequestUserPermission(k_Permission, callbacks); } } void OnPermissionDenied(string permission) { // handle denied permission } void OnPermissionGranted(string permission) { // handle granted permission } #endif // UNITY_ANDROID
구성 레이어로 시각적 품질 개선
구성 레이어는 UI 요소를 렌더링하는 데 권장되는 방법입니다. 모든 항목이 플랫폼의 컴포지터에 직접 렌더링되므로 Unity의 표준 렌더링 파이프라인에 비해 훨씬 높은 품질로 요소를 표시할 수 있습니다.
예를 들어 텍스트를 표시하는 경우 표준 Unity 렌더링은 텍스트가 흐릿하고, 가장자리가 부드럽고, 시각적 아티팩트가 있을 가능성이 더 큽니다. 반면 구성 레이어를 사용하면 텍스트가 더 선명하고, 윤곽선이 더 선명하며, 전반적으로 환경이 더 개선됩니다.
텍스트뿐만 아니라 동영상, 이미지, UI 요소도 훨씬 높은 품질로 렌더링합니다. 이렇게 하려면 런타임의 컴포지터 레이어에 대한 기본 지원을 활용합니다.
구성 레이어를 사용 설정하려면 패키지 관리자를 열고 'Unity Register'(Unity 등록)를 선택한 후 'XR Composition Layers'(XR 구성 레이어)를 설치합니다.
빌드 및 실행
이제 OpenXR 패키지가 설치되고 기능이 사용 설정되었으며 손과 머리 움직임을 위한 프리팹 설정이 완료되었으므로 장면을 빌드하고 테스트를 위해 헤드셋에 직접 배포할 수 있습니다.
다음 단계: 기술 확장
이제 Android XR 개발 환경을 설정하고 주요 개념을 이해했으므로 XR 개발 여정을 계속하기 위한 다음 단계는 다음과 같습니다.
지속적인 학습을 위한 필수 리소스:
- Android XR 개발자 문서 - 모든 Android XR 기능에 관한 포괄적인 가이드
- Unity XR 개발 매뉴얼 - Unity의 공식 XR 개발 리소스
탐색할 샘플 프로젝트:
- Android XR Unity 샘플 - 다양한 Android XR 기능을 보여주는 Google의 공식 샘플 프로젝트
- Unity XR Interaction Toolkit 예 - XR 상호작용 및 게임플레이 메커니즘의 포괄적인 예
- Unity VR 템플릿 \- VR 프로젝트의 완전한 시작점
- VR 멀티플레이어 템플릿 - 소셜 XR 환경 살펴보기
계속 읽기
-
방법
Google은 과도한 배터리 소모가 Android 사용자의 가장 큰 관심사라는 점을 인식하고 개발자가 더 전력 효율적인 앱을 빌드할 수 있도록 지원하기 위해 상당한 조치를 취해 왔습니다.
Alice Yuan • 8분 길이
-
방법
Google은 온디바이스 모델과 클라우드 모델을 모두 사용하여 AI 지원 기능의 예를 제공하고 사용자에게 즐거운 환경을 제공하도록 영감을 주고자 합니다.
Thomas Ezan, Ivy Knight • 2분 길이
-
방법
실적 레벨링 가이드는 5개의 레벨로 구성되어 있습니다. 최소한의 채택 노력 실적 도구를 소개하는 레벨 1부터 맞춤 실적 프레임워크를 유지할 리소스가 있는 앱에 적합한 레벨 5까지 살펴봅니다.
Alice Yuan • 9분 길이
소식 받아 보기
Android 개발 관련 최신 정보를 이메일로 받아 보세요. 매주