Unity 2022.3.5f1 + Oculus Integration 56.0 (Deep Dive CreateUI)
VR/Oculus Integration 2023. 10. 5. 13:46
이전글
https://smilejsu.tistory.com/3178
이전 포스팅에서 도큐먼트에 있는 UI만들기를 해봤다
이번에는 집중적으로 해부 하고 분석 해서 다양한 UI를 만들어 보겠다
UI종류는 Flat / Curved 로 나뉜다
먼저 Flat쪽을 해보려고 한다
계층 구조는 다음과 같다
Project창에서 FlatUnityCanvas를 검색 하면 찾을수 있다
하이어라키로 가져온다
FlatUnityCanvas에는 Poke할수 있도록 PokeInteractable컴포넌트가 붙어 있다
다음 문서를 읽어 본다
https://developer.oculus.com/documentation/unity/unity-isdk-poke-interaction/
Poke Interactions
Design Guideline
몰입감 있고 즐거운 앱을 만들기 위해서는 편안한 손 추적 경험을 제공하는 것이 필수적입니다.
모범 사례에 대해 알아보고 사용자 불편의 위험을 최소화하려면 핸드 트래킹 설계 가이드를 참조하세요.
찌르기(Poke) 상호작용을 사용하면 손, 컨트롤러를 손으로, 컨트롤러를 사용하여 직접 터치하여 표면과 상호작용할 수 있습니다.
PokeInteractor
PokeInteractor는 PokeInteractable이 제공된 ISurface 교차점을 통해 호버링과 선택을 모두 계산하는 데 사용할 점 변환을 정의합니다.
특히 PokeInteractor는 ISurfacePatch에서 정의한 대로 거리별로 가장 가까운 PokeInteractable을 계산하여 마우스오버할 수 있는 최고의 PokeInteractable에 점수를 매깁니다.
또한 PokeInteractor는 두 개의 연속 프레임에 걸친 점 변환이 표면 법선 방향에서 PokeInteractable의 ISurface와 교차할 때 선택이 발생해야 한다고 결정합니다.
이런 방식으로 빠른 프레스를 처리할 수 있을 뿐만 아니라 프레스가 표면 위에서만 시작되도록 요구할 수도 있습니다.
PokeInteractable
PokeExamples 장면의 이 예에서 숫자 1(흰색 평면)은 버튼 표면이고 숫자 2(파란색 선)는 법선입니다.
버튼 하나를 만들어서 테스트 해보자
이미 만들어져있는것을 처음 부터 만들 필요는 없을거 같구...
기존에 있던 FlatUnityCanvas를 변경 하는걸로 시작 해본다
프로젝트 창에서 FlatUnityCanvas 프리팹을 찾아 하이어라키로 가져오고 RayInteractable컴포넌트를 부착 한다
이미 있는 스크롤뷰는 비활성화
버튼을 하나만들어서 그냥 테스트
Curved UI만들기
빈 오브젝트 ( Cylinder)를 만들고 Cylinder , CylinderSurface 컴포넌트를 부착
Cylinder의 Radius의 값을 2로 변경
Cylinder Surface의Cylinder필드에 Cylinder를 넣고 Facing 을 In으로 변경 하고 Height를 0으로 설정 한다
Cylinder자식으로 빈오브젝트 (CurvedCanvas)를 만들고
CurvedCanvas 자식으로 빈오브젝트 (Mesh)를 만든다
Mesh에 CanvasCylinder를 부착 하고
OVR Canvas Mesh Renderer도 부착 한다
MeshFilder, MeshRenderer, MeshCollider를 부착 한다
그리고 ColliderSurface를 부착 한다
CurvedCanvas자식으로 UI > Canvas를 만들고
다음과 같이 설정 하고
Canvas에 Image컴포넌트를 부착 하고 다음과 같이 설정 한다
CanvasRederTexture를 붙여 준다
레이어를 UI로 설정 하고 (모든 자식 포함)
Camera Render Texture의 Canvas에 필드에 Canvas를 넣어 준다
Cylinder를 살짝 위로 올리고
CurvedCanvas를 살짝 앞으로 이동 시키자
텍스트를 하나 추가 하고
이제 Mesh를 선택 하고
다음과같이 필드에 넣어주자
OVR Canvas Mesh Renderer를 다음과 같이 설정 한다
Collider Surface의 Collider 필드에 Mesh게임 오브젝트를 넣어주자
참고
https://developer.oculus.com/documentation/unity/unity-isdk-create-ui/
'VR > Oculus Integration' 카테고리의 다른 글
Unity 2022.3.5f1 + Oculus Integration 56.0 (Use Active State) (0) | 2023.10.06 |
---|---|
Unity 2022.3.5f1 + Oculus Integration 56.0 (Curved Debug UI) (0) | 2023.10.05 |
Unity 2022.3.5f1 + Oculus Integration 56.0 (RayExamples) (0) | 2023.10.04 |
Unity 2022.3.5f1 + Oculus Integration 56.0 (Create a Curved or Flat UI) (0) | 2023.10.04 |
Unity 2022.3.5f1 + Oculus Integration 56.0 (Locomotion Retry) (0) | 2023.10.03 |