
AI의 규칙 정비
요약
Unity 6와 Meta Quest(Horizon OS)를 활용한 XR 개발 가이드라인입니다. OpenXR 기반의 렌더링 설정, 패스스루 구현, 곡면 메쉬 생성 및 데이터 로그 관리 등 최신 기술 스택을 정의합니다.
핵심 포인트
- Unity 6 및 Meta XR SDK v74 이상 사용 권장
- URP와 Vulkan API를 통한 패스스루 구현 필수
- Cylinder Layer 대신 Mesh 변형을 통한 곡면 스크린 구현
- Scoped Storage 대응을 위한 persistentDataPath 로그 관리
- 엔진: Unity 6.0 (6000.x 계열)
- 타겟: Meta Quest (Horizon OS)
- 빌드 프로파일: Meta Quest 플랫폼 (Platform Browser에서 선택)
※ 범용 Android 빌드 설정을 제안하지 말 것 - XR 플러그인: Unity OpenXR Plugin + Unity OpenXR: Meta 패키지
※ Oculus XR Plugin은 권장되지 않으므로 사용하지 말 것 - 렌더링: URP (Universal Render Pipeline) + Vulkan API
헤드 트래킹 (Head Tracking) 기록: OVRCameraRig 또는 XR Origin + Tracked Pose Driver를 사용할 것
Probuilder제 PIPE 조작: ProBuilderMesh API를 사용한 구현을 제안할 것
곡면 스크린 (동영상·텍스처 표시):
NG: XR Composition Layers의 Cylinder Layer (작동하지 않은 실적이 있으므로 제안하지 말 것)
OK: 얇은 Cube를 베이스로 MeshFilter + MeshRenderer를 사용하여 코드에서 정점 (Vertex)을 원호 모양으로 변형하여 곡면 Mesh를 생성
텍스처·동영상은 VideoPlayer + RenderTexture로 Material에 할당할 것
정점 계산은 Mathf.Sin / Mathf.Cos으로 원호를 근사하고, 세그먼트 수·곡률 반경·UV 좌표를 인수로 제어할 수 있는 설계로 할 것 -
패스스루 (Passthrough) 기능 (MR 앱으로서 현실 영상과 VR 오브젝트를 합성하는 용도로 사용 중):
사용 기능: Meta Quest Camera (Passthrough) OpenXR Feature
구현 필수 사항:
① 카메라의 Clear Flags = Solid Color, Background alpha = 0 (투명)으로 설정할 것
② AR Camera Manager 컴포넌트를 메인 카메라에 부착할 것
③ URP에서는 Vulkan이 필수 (OpenGL ES에서는 패스스루 불가)
④ 패스스루 전환은 AR Camera Manager.enabled의 on/off로 수행할 것
⑤ 에디터 상에서는 패스스루가 표시되지 않음. Android 빌드로 실기기에서 확인할 것 -
컨트롤러 입력: Meta Quest Touch Plus / Pro Controller Profile 모두를 등록,
XR Input Actions를 경유하여 구현 -
CSV 로그 쓰기 (날짜·세션별로 별도 파일로 축적, ADB/USB를 통해 PC로 추출):
경로: Application.persistentDataPath를 반드시 사용할 것
실기기 경로 예시: /sdcard/Android/data/<패키지명>/files/log_20250530_120000.csv
파일명: DateTime.Now를 사용하여 날짜+시간으로 세션마다 별도 파일로 만들 것
쓰기: File.AppendAllText로 추가 또는 세션 종료 시 File.WriteAllText로 일괄 작성할 것
ADB 추출 명령어: adb pull /sdcard/Android/data/<패키지명>/files/ ./logs
NG: /sdcard/ 직하 등 persistentDataPath 이외의 경로는 Android 10 이후의 스코프드 스토리지 (Scoped Storage)로 인해 쓰기가 불가능하므로 제안하지 말 것
※ AndroidManifest.xml에 WRITE_EXTERNAL_STORAGE 추가는 불필요
-
2025년 이후의 정보를 우선할 것
-
공식 문서 우선: docs.unity3d.com / developers.meta.com/horizon
-
Meta XR SDK는 v74 이후를 전제로 할 것
-
오래된 정보를 포함하는 경우 「구버전용」이라고 명기할 것
-
언어: C# (Unity 6 대응 네임스페이스 사용)
-
권장되지 않는 API보다 Input System Package를 경유한 구현을 우선할 것
-
주석은 일본어로 작성할 것
-
null 참조나 XR 초기화 타이밍에는 방어적 코드 (Defensive Code)를 추가할 것
-
목적 설명
-
구현 절차 (글머리 기호)
-
코드 예시
-
참고 문서 URL (존재하는 경우)
불확실한 정보는 「확인 필요」라고 명기하고, 오래되었을 가능성이 있는 내용에는 경고를 붙일 것.
AI 자동 생성 콘텐츠
본 콘텐츠는 Qiita AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기