VR 개발 중 OVRRaycaster에서 조금 빠진 이야기
소개
Unity 장면에서 Hierarchy와 Inspector를 표시 할 수있는 Runtime Inspector & Hierarchy가 디버깅에 너무 유용합니다. #OculusGoDev
여기의 트윗을 보고, 지금 개발 중인 게임의 디버그 기능으로서 추가해 보았는데, 빠진 포인트가 있었으므로, 같은 처지의 사람이 있으면 도움이 되면 좋겠다고 하는 곳입니다.
결론에서 말하면 Oculus에서 제공하는 OVRRaycaster.cs에서는 Graphics.raycastTarget의 판정을 하지 않은 것 같습니다.
uGUI 조작시 어쩐지 잘 움직이지 않는다고 생각하면 다음을 시도해보십시오.
private void GraphicRaycast(Canvas canvas, Ray ray, List<RaycastHit> results) {
...
if (graphic.depth == -1)
continue;
...
}
위의 코드를 다음과 같이 수정합니다.
private void GraphicRaycast(Canvas canvas, Ray ray, List<RaycastHit> results) {
...
if (graphic.depth == -1 || !graphic.raycastTarget)
continue;
...
}
이것으로 잘 움직였습니다.
이것 아래는 RuntimeInspector의 소개와 OculusGo에서 uGUI를 조작할 때의 비망록입니다.
메모
이번 사용한 자산은 UnityRuntimeInspector입니다.
htps // t. 코 / 1에 h6m20 SLF
피 c. 라고 r. 코 m / y 피 wm ぁ fJ
이런 느낌의 히에랄키 인스펙터를 게임 장면에서 미리 볼 수 있습니다.
OculusGo에는 RemoteContoller가 부속되어 있으므로, 이 컨트롤러에서 Raycasting을 실시해, uGUI의 컨트롤을 실시하려고 생각했습니다. (이번에는 GazeInput을 사용하지 않았습니다.)
조사해 보면 Oculus사가 RayCast를 마우스 인풋과 같이 변환하는 래퍼를 제공되고 있는 것 같습니다. > OVRInputModule.cs, OVRRaycaster.cs
사용 방법
OVRInputModule.cs를 StandardInputModule 대신 EventSystem에 연결
OVRRaycaster.cs를 GraphicRaycaster 대신 Canvas에 연결
이것만으로 RemoteContoroller에서 uGUI에 입력을 보낼 수 있게 되었습니다, 간단하네요.
Reference
이 문제에 관하여(VR 개발 중 OVRRaycaster에서 조금 빠진 이야기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tamalign/items/4d887717455bab66a7bf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)