-
VIVE Wave
-
SDK
- VIVE Wave란 무엇인가?
- Wave SDK는 어디에서 다운로드할 수 있나요?
- Wave Developer Community 포럼에 액세스하려면 어떻게 해야 하나요?
- 사용자 지정 패키지를 가져온 후 컴파일 또는 빌드 오류를 해결하려면 어떻게 해야 하나요?
- 컨트롤러를 장면에 삽입하려면 어떻게 해야 하나요?
- 동일한 장면에서 다른 추적 자세 설정이 있는 헤드를 전환하려면 어떻게 해야 하나요?
- 동일한 장면에서 6DoF와 3DoF 간을 전환하려면 어떻게 해야 하나요?
- 이벤트를 받거나 시스템 오버레이를 클릭할 수 없는 이유는 무엇인가요?
- 런타임에 컨트롤러 객체를 가져오려면 어떻게 해야 하나요?
- 컨트롤러 포인터를 표시하거나 숨기려면 어떻게 해야 하나요?
- 컨트롤러 모델 객체를 루트에서 이미터로 변경하려면 어떻게 해야 하나요?
- 컨트롤러가 이벤트를 전송했는지 확인하려면 어떻게 해야 하나요?
- 회전 전용 환경에서 컨트롤러 위치를 설정하려면 어떻게 해야 하나요?
- 장면에 하나의 컨트롤러만 표시하려면 어떻게 해야 하나요?
- 플로어와 헤드의 거리를 구하려면 어떻게 해야 하나요?
-
-
VIVE SRWorks
-
VIVE 아이 및 페이셜 트래킹
- VIVE 아이 및 페이셜 트래킹 SDK 및 런타임은 어디에서 다운로드할 수 있습니까?
- 아이 트래킹을 보정하려면 어떻게 해야 하나요?
- VIVE 아이 및 페이셜 트래킹에는 어떤 드라이버가 필요하나요?
- VIVE 아이 및 페이셜 트래킹 런타임은 어떻게 업데이트합니까?
- VIVE Pro Eye 펌웨어를 업데이트하려면 어떻게 해야 하나요?
- 앱을 시작할 때 Windows에서 권한 변경 메시지가 표시되는 이유는 무엇인가요?
- 아이 카메라 버전이 "N/A"으로 표시됩니다. 오류인가요?
- 다른 아이 트래킹 문제가 발생하면 어떻게 해야 하나요?
- 눈 보정 초기화 및 OpenCL 오류가 발생했습니다. 어떻게 해야 하나요?
- VIVE 무선 어댑터를 사용할 때 아이 트래킹이 작동할 수 있습니까?
- 사용자에게 시각 장애가 있는 경우 교정 데이터는 어떻게 됩니까?
- 추적 가능한 FOV란 무엇인가요? 추적 정확도는 어떤가요?
-
VIVE 핸드 트래킹
-
VIVE 3DSP Audio
-
VIVEPORT
-
VIVE Business 스트리밍
-
얼굴 추적
-
핸드 트래킹
-
런타임에 컨트롤러 객체를 가져오려면 어떻게 해야 하나요?
WaveVR은 Controller Loader를 사용하여 런타임에 컨트롤러를 로드합니다. 따라서 컨트롤러 객체는 편집기에서 수정할 수 없습니다.
자산 > WaveVR > 추가 > GenericModel > 리소스 > 컨트롤러에서 Generic Controller Model 프리팹은 WaveVR 컨트롤러의 구조를 보여 줍니다.
프리팹에는 컨트롤러 모델, 컨트롤러 빔 및 컨트롤러 포인터가 포함됩니다.
빔 및 포인터를 가져오는 방법을 알아보려면 컨트롤러 모델에서 빔 및 포인터 찾기(샘플 코드)로 이동하십시오.
컨트롤러 모델에서 빔 및 포인터 찾기(샘플 코드)
빔 및 포인터를 찾으려면 아래 단계를 따르십시오.
- 컨트롤러 인스턴스를 받으려면 CONTROLLER_MODEL_LOADED 브로드캐스트를 듣습니다.
- 컨트롤러의 모든 하위 항목을 찾습니다.
-
하위 항목에서 빔/포인터를 포함한 GameObject를 찾습니다.
private GameObject dominantController = null, nonDominantController = null; void OnEnable() { WaveVR_Utils.Event.Listen (WaveVR_Utils.Event.CONTROLLER_MODEL_LOADED, OnControllerLoaded); } void OnControllerLoaded(params object[] args) { WaveVR_Controller.EDeviceType _type = (WaveVR_Controller.EDeviceType)args [0]; if (_type == WaveVR_Controller.EDeviceType.Dominant) { this.dominantController = (GameObject)args [1]; listControllerObjects(this.dominantController); } if (_type == WaveVR_Controller.EDeviceType.NonDominant) { this.nonDominantController = (GameObject)args [1]; listControllerObjects(this.nonDominantController); } } void OnDisable() { WaveVR_Utils.Event.Remove (WaveVR_Utils.Event.CONTROLLER_MODEL_LOADED, OnControllerLoaded); } private void listControllerObjects(GameObject ctrlr) { if (ctrlr == null) return; WaveVR_Beam _beam = null; WaveVR_ControllerPointer _pointer = null; // Get all children. GameObject[] _objects = new GameObject[ctrlr.transform.childCount]; for (int i = 0; i < ctrlr.transform.childCount; i++) _objects[i] = ctrlr.transform.GetChild (i).gameObject; // Find beam. for (int i = 0; i < _objects.Length; i++) { _beam = _objects [i].GetComponentInChildren<WaveVR_Beam> (); if (_beam != null) break; } if (_beam != null) Debug.Log ("Find beam: " + _beam.name); // Find pointer. for (int i = 0; i < _objects.Length; i++) { _pointer = _objects [i].GetComponentInChildren<WaveVR_ControllerPointer> (); if (_pointer != null) break; } if (_pointer != null) Debug.Log ("Find pointer: " + _pointer.name); }
이 항목이 도움이 되었나요?
예
아니오
제출
감사합니다! 귀하의 피드백은 다른 사람들이 가장 도움이 되는 정보를 보는 데 도움이 됩니다.