2 minute read

개요Permalink


XR(eXtended Reality)은 VR(가상 현실), AR(증강 현실), MR(혼합 현실)을 포함하는 개념으로, Unity에서는 XR Plugin Management 시스템을 활용하여 다양한 플랫폼을 지원할 수 있습니다.

  • VR (Virtual Reality, 가상 현실): 사용자가 완전히 가상 환경에 몰입하는 기술 (예: Oculus, HTC Vive)
  • AR (Augmented Reality, 증강 현실): 실제 환경 위에 가상 요소를 겹쳐 표시하는 기술 (예: ARCore, ARKit)
  • MR (Mixed Reality, 혼합 현실): 실제 환경과 가상 환경이 상호작용하는 기술 (예: HoloLens)

Image
(출처 : Interaction Design Foundation)

Unity XR 개발 환경 설정Permalink


  1. Unity 버전 선택: VR/AR 개발을 위해 Unity 2021 이상 버전 사용을 권장합니다.
  2. XR Plugin Management 설치
    • Window → Package Manager → XR Plugin Management 검색 후 설치
  3. 플랫폼별 XR 플러그인 추가
    • Oculus VR: Oculus XR Plugin
    • OpenXR: OpenXR Plugin (HTC Vive, Windows MR 등 지원)
    • AR: ARCore (Android), ARKit (iOS)


Image
(출처 : https://docs.unity3d.com/kr/2022.3/Manual/xr-plugin-management.html)

VR 빌드 설정 (Oculus/OpenXR 기준)Permalink


  1. 프로젝트 설정
    1. EditProject SettingsXR Plugin Management → Oculus/OpenXR 활성화
    2. EditProject SettingsPlayer 설정에서 XR 지원 옵션 체크
  2. XR Interaction Toolkit 추가
    VR 컨트롤러 및 상호작용을 위해 XR Interaction Toolkit을 설치합니다.
    1. WindowPackage ManagerXR Interaction Toolkit 설치
    2. GameObjectXRXR Rig 추가
  3. 컨트롤러 입력 설정
    • XR Controller 컴포넌트 추가
    • Input Action 설정 (Input System 패키지 사용)
    • Oculus, OpenXR 등 컨트롤러와 연결


AR 빌드 설정 (ARCore/ARKit 기준)Permalink


  1. AR 지원 설정
    1. Edit → Project Settings → XR Plugin Management → ARCore/ARKit 활성화
    2. Player 설정에서 AR 지원 옵션 체크
  2. AR Camera 및 Plane Detection 추가
    1. GameObject → XR → AR Session 추가
    2. GameObject → XR → AR Camera 추가
    3. GameObject → XR → AR Plane Manager 추가
  3. AR 인터랙션 구현
    • AR Raycast를 사용하여 터치한 위치에 가상 오브젝트 배치
    • AR Anchor를 활용하여 가상 오브젝트를 실제 공간에 고정


Image
(출처 : https://learn.unity.com/tutorial/setting-up-ar-foundation#)

XR 빌드 및 실행Permalink


VR 빌드 (Oculus Quest 2 예시)Permalink

  1. 플랫폼 변경: File → Build Settings → Android 선택 후 Switch Platform
  2. Oculus 설정: XR Plugin Management → Oculus 활성화
  3. 빌드: Build And Run (Oculus 기기에 APK 설치)

AR 빌드 (Android ARCore 예시)Permalink

  1. File → Build Settings → Android 선택 후 Switch Platform
  2. XR Plugin Management에서 ARCore 활성화
  3. Player Settings에서 Camera Usage Description 입력
  4. 빌드 & 실행: Build And Run



예제 코드 (VR & AR 오브젝트 배치)Permalink


🔹 VR 컨트롤러 입력을 받아 오브젝트 생성

using UnityEngine;
using UnityEngine.XR.Interaction.Toolkit;

public class VRObjectSpawner : MonoBehaviour
{
    public GameObject prefab; // 생성할 오브젝트
    public XRController controller; // VR 컨트롤러

    void Update()
    {
        if (controller.inputDevice.TryGetFeatureValue(UnityEngine.XR.CommonUsages.triggerButton, out bool isPressed) && isPressed)
        {
            Instantiate(prefab, transform.position + transform.forward * 2, Quaternion.identity);
        }
    }
}


🔹 AR 터치 입력을 받아 오브젝트 생성

using UnityEngine;
using UnityEngine.XR.ARFoundation;
using UnityEngine.XR.ARSubsystems;

public class ARObjectSpawner : MonoBehaviour
{
    public GameObject prefab;
    private ARRaycastManager raycastManager;
    private List<ARRaycastHit> hits = new List<ARRaycastHit>();

    void Start()
    {
        raycastManager = GetComponent<ARRaycastManager>();
    }

    void Update()
    {
        if (Input.touchCount > 0 && Input.GetTouch(0).phase == TouchPhase.Began)
        {
            if (raycastManager.Raycast(Input.GetTouch(0).position, hits, TrackableType.PlaneWithinPolygon))
            {
                Instantiate(prefab, hits[0].pose.position, Quaternion.identity);
            }
        }
    }
}


정리Permalink


  • Unity에서 XR 개발을 위해 XR Plugin Management를 설정해야 합니다.
  • VR은 XR Interaction Toolkit을 사용하여 손쉽게 구현할 수 있습니다.
  • AR은 AR Foundation을 활용하여 터치 기반 상호작용을 추가할 수 있습니다.
  • 프로젝트 목표에 맞게 VR/AR/XR 빌드 설정을 최적화해야 합니다.

Top