XRIT 통합
이 애드온은 유니티 XR Interaction Toolkit을 다중 사용자 환경에서 사용할 수 있도록 지원합니다.
목표는 기본적인 기능에 대해 쉽게 사용할 수 있는 XRIT 지원을 제공하는 것이며, 모든 XRIT 기능을 지원하려는 것은 아닙니다.
이 애드온은 유니티 XRIT v3.0.8에서 개발 및 테스트되었습니다.
구현 방법
이 애드온을 구축하기 위해 유니티에서 제공하는 유니티 손 상호작용 데모 샘플의 일부 프리팹을 사용했습니다.
리그(Rig)
XR 환경에서는 로컬 사용자의 움직임과 상호작용이 리그(rig)에 의해 관리됩니다. 이를 하드웨어 리그라고 부릅니다.
유니티 씬에서는 이 하드웨어 리그 오브젝트가 사용자 장치(헤드셋, 컨트롤러 등)를 관리하며, 손 추적과 오브젝트 상호작용과 같은 기능을 지원합니다.
XRIT 기본 리그(XR Origin Hands (XR Rig)
프리팹)를 다중 사용자 환경에서 사용하려면 몇 가지 수정이 필요합니다.
일부 하드웨어 정보(예: 머리와 손 위치)는 네트워크 상에서 로컬 사용자를 나타내는 네트워크 리그
와 동기화되어야 하기 때문입니다.
XRIT 리그의 모든 수정은 이 애드온에서 제공하는 하나의 스크립트로 런타임에 처리됩니다: XRITHardwareRig
이 클래스는 다음 역할을 수행합니다:
- XRIT 리그 구성 요소(손, 컨트롤러, 카메라) 감지
- 관련 프리팹 또는 클래스 추가
- 컨트롤러 및 손 시각화 모드 관리 (연결 상태에 따라 표시 여부 설정)
이 XRITHardwareRig
클래스는 XR Origin Hands (XR Rig)
프리팹의 XRIT XR Origin rig
컴포넌트에 추가되어야 합니다.
우리는 XRITHardwareRig
라는 바로 사용할 수 있는 프리팹을 함께 제공합니다.
그랩
원격 사용자에게 그랩 상호작용을 동기화하려면, 잡을 수 있는 오브젝트에 XRIT Network Grabbable
클래스를 추가해야 합니다.
이 컴포넌트는 XRGrabInteractable
컴포넌트 옆에 위치해야 합니다.
객체가 잡힐 때를 감지하기 위해 selectEntered
및 selectExited
이벤트를 수신합니다.
로컬 사용자가 객체를 잡으려 할 때, 권한이 없으면 XRIT Network Grabbable
클래스가 상태 권한을 요청하며, 객체는 잡힌 리그의 움직임을 따라가게 됩니다.
ParentingMode
ParentingMode
파라미터는 객체가 씬 계층 내에 위치한 방식에 따라 부모 설정 동작을 구성할 수 있습니다.
- UnparentAtStart :
NetworkTransform SyncParent
파라미터를 비활성화하고, 객체가 네트워크 오브젝트가 아닌 부모에 속해 있을 경우 시작 시 부모에서 분리합니다. 객체를 놓았을 때 부모 관계는 복구되지 않습니다. - AutoFixparenting :
NetworkTransform SyncParent
파라미터를 비활성화하고, 상태 권한 변경 시 부모 설정을 조정합니다. 이 모드는 잡힌 오브젝트는 부모가 없고, 놓이면 초기 부모(awake 시 감지된 부모)로 복구됩니다. 주로 네트워크화된 씬 오브젝트에 적합합니다. - NetworkSync : 부모 설정을 변경하지 않으며 Fusion의
NetworkTransform synchronize parent
기능을 활성화합니다. XRIT 내부 로직 때문에 완전한 테스트는 되지 않았으므로 주의해서 사용해야 합니다.
데모

데모 씬은 Assets\Photon\FusionAddons\XRITIntegration\Demo\Scenes\
폴더에서 찾을 수 있습니다.
이 데모 씬은 Unity XRIT Starter 데모 씬을 수정하여 바로 사용할 수 있도록 만든 버전입니다.
의존성
- XRShared 애드온 필요
다운로드
이 애드온의 최신 버전은 Industries 애드온 프로젝트에 포함되어 있습니다.
지원되는 토폴로지
- 공유 모드
변경 로그
- 버전 2.0.0: 최초 릴리즈