기본 콘텐츠로 건너뛰기

[Unity / Android] AR Foundation 환경설정

    목차

개요

두 버전 서로간 호환이 되지 않는다. Unity용 ARCore SDK 이전 가이드 (웹페이지 갱신됨)


지원 버전

2021.3 Document (2021.3.0f1) 기준

  • SDK : 30.0.2 (아직 SDK Build-tools 30 초과 버전은 지원하지 않음)
  • NDK : r21d (21.3.6528147)
Unity NDK
2019.4 LTS r19 ()
2020.3 LTS r19 ()
2021.2 r21d (21.3.6528147)
  • JDK : OpenJDK 1.8

에디터 설정

1. 에디터 준비

  • 모듈에서 “Android Build Support” 및 하위 항목을 설치한다. (Android SDK & NDK Tools, OpenJDK)
    • Android studio에서 제공하는 녀석하고 약간의 차이가 있다. (파일 개수 등)
      정신 건강을 위해 그냥 설치하자
  • 새 3D 프로젝트를 생성한다.

2. ARCore 확장 프로그램 패키지 설치 (Apache 2.0)

  • DOC : Getting started extensions
  • Windows → Package Manager → “+” 버튼 → “Add package from git URL…”
  • 아래 URL을 텍스트 필드에 복사한다.

https://github.com/google-ar/arcore-unity-extensions.git

  • “Add” 버튼 클릭
  • “Enable Analytics for External Dependency Manager” 제목에 대화상자(2개 정도)가 뜨는데 오른쪽 아래 아무 버튼이나 누르자. (본인의 경우 "Yes"를 눌렀는데, "No"를 눌러도 될 것 같다.)
  • ARCore Extensions를 설치하면서 종속 패키지(AR Foundation, ARCore XR Plugin)들을 자동으로 설치한다.
    • 설치된 종속 패키지 항목들이 Package Manager에 보이지 않을 수 있지만, 에디터의 "Project"의 “Packages” 부분에 추가된 것을 확인할 수 있다.

3. Android 환경 설정

  • File → Build Settings → Platform → Android 선택 후, “Switch Platform” 버튼 클릭
  • Edit → Perferences → External Tools
    하단 부분에 Android SDK 경로들이 잘 설정 되었는지 확인한다.
    Androud Build 관련 모듈을 정상적으로 잘 설치했다면, 자동으로 잘 인식되며 아래 이미지의 경고창이 뜨지 않게 된다.
    만약 다른 버전의 Unity에서 Android 모듈을 설치했다면, 해당 모듈의 경로를 가져다 써도 된다. 경로 형태는 다음과 같다.

[유니티 설치 폴더]/Unity/Hub/Editor/[에디터 버전]/Editor/Data/PlaybackEngines/AndroidPlayer/

  • Project Settings 에서 설정해야 할 것 (Edit → Project Settings)

    • XR Plug-in Management : ARCore 부분 체크
    • Player (Build Settings 7시 방향에 있는 Player Settings 버튼으로도 진입 가능), 오른쪽 안드로이드 아이콘 선택 후 진행한다.

      • Other Settings → Rendering : “Auto Graphics API” 체크 해제 및 “Graphics APIs” 부분에 “Vulkan” 제거 (ARCore에서는 Vulkan을 지원하지 않음)
      • Other Settings → Minimun API Level : Android 7.0 ‘Nougat’ (API level 24)
      • Other Settings → Target API Level : Android 11.0 (API level 30)
      • Other Settings → Target Architectures
        1. ARM64 : Google Play 64비트 요구사항
        2. ARMv7 : 32비트 기기 지원
      • Other Settings → Scripting Backend : 위에서 ARM64를 사용할 경우 "IL2CPP"로 선택

AR 기능 추가

  1. Hierarchy 창에서 Main Camera를 삭제합니다.

  2. Hierarchy 창에서 다음 게임 객체를 마우스 오른쪽 버튼으로 클릭하고 추가합니다 (아직 추가되지 않은 경우).

    • XR > AR Session : AR 환경의 수명 주기를 제어
    • XR > AR Session Origin : AR 좌표를 Unity 세계 좌표로 변환. 하위에 있는 AR Camera가 Main Camera를 대체한다.
    • XR > ARCore Extensions
  3. Hierarchy 창에서 ARCore Extensions 패키지를 선택합니다.

  4. Inspector 창에서 각 필드마다 타겟 버튼을 클릭하고 다음과 같이 각 필드를 상응하는 게임 객체와 연결합니다.

    • Session: 장면의 AR Session를 사용합니다.
    • Session Origin: 장면의 AR Session Origin를 사용합니다.
    • Camera Manager: 장면의 AR Camera를 사용합니다.
  5. 원하는 경우 Cloud Anchors 및 카메라 구성 필터의 다음 애셋을 만들고 연결합니다.

    • Project > Assets 창에서 마우스 오른쪽 버튼을 클릭하고 Create > XR > ARCore Extensions Config를 선택합니다.
    • Project > Assets 창에서 마우스 오른쪽 버튼을 클릭하고 Create > XR > Camera Config Filter를 선택합니다.
    • Hierarchy 창에서 ARCore Extensions 패키지를 선택합니다.
    • Inspector 창의 ARCore Extensions Config 필드에서 타겟 버튼을 클릭하고 ARCoreExtensionsConfig 애셋에 연결합니다.
    • Inspector 창의 Camera Config Filter 필드에서 타겟 버튼을 클릭하고 ARCoreExtensionsCameraConfigFilter 애셋에 연결합니다.

기타

차라리 AR Foundation sample에서 샘플 프로젝트를 다운로드 받아 Unity로 실행한 뒤, 빌드세팅과 플러그인만 설정하면 아주 잘 된다.


참고 자료

Unity documentation

Android 환경 설정 (2021.3)

Android documentation

Android용 ARCore 확장 프로그램용 Cloud Anchors 개발자 가이드
카메라 구성

댓글