-
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 스트리밍
-
얼굴 추적
-
핸드 트래킹
-
장면에 하나의 컨트롤러만 표시하려면 어떻게 해야 하나요?
2개의 활성 컨트롤러를 계속 유지하는 동안 장면에 하나의 컨트롤러만 표시하도록 선택할 수 있습니다.
다음 코드를 추가하십시오.
- WaveVR의 새 스크립트
private GameObject ControllerLoader_DO = null; private GameObject loaderInstance_DO = null; private GameObject ControllerLoader_ND = null; private GameObject loaderInstance_ND = null; #region MonoBehaviour Overrides void OnEnable() { WaveVR_Utils.Event.Listen (WaveVR_Utils.Event.CONTROLLER_MODEL_UNLOADED, OnControllerUnloaded); } void Start () { this.ControllerLoader_DO = Instantiate(Resources.Load("ControllerLoader", typeof(GameObject))) as GameObject; this.ControllerLoader_DO.GetComponent<WaveVR_ControllerLoader>().WhichHand = WaveVR_ControllerLoader.ControllerHand.Dominant; this.ControllerLoader_DO.SetActive(false); this.ControllerLoader_ND = Instantiate(Resources.Load("ControllerLoader", typeof(GameObject))) as GameObject; this.ControllerLoader_ND.GetComponent<WaveVR_ControllerLoader>().WhichHand = WaveVR_ControllerLoader.ControllerHand.Non_Dominant; this.ControllerLoader_ND.SetActive(false); }
- Update ()는 현재 컨트롤러 연결 상태를 모니터링하고 하나의 컨트롤러만 표시합니다.
void Update () { if (WaveVR.Instance == null|| this.ControllerLoader_DO == null || this.ControllerLoader_ND == null) return; if (this.loaderInstance_DO != null || this.loaderInstance_ND != null) return; WaveVR.Device _dev_do = WaveVR.Instance.getDeviceByType (WaveVR_Controller.EDeviceType.Dominant); if (_dev_do != null && _dev_do.connected && this.loaderInstance_ND == null) { this.loaderInstance_DO = Instantiate(ControllerLoader_DO); this.loaderInstance_DO.SetActive(true); } WaveVR.Device _dev_nd = WaveVR.Instance.getDeviceByType(WaveVR_Controller.EDeviceType.NonDominant); if (_dev_nd != null && _dev_nd.connected && this.loaderInstance_DO == null) { this.loaderInstance_ND = Instantiate(ControllerLoader_ND); this.loaderInstance_ND.SetActive(true); } }
- 컨트롤러 중 하나의 연결이 끊어지면 LoaderInstance는 소멸되며 null로 설정됩니다.
void OnDisable() { WaveVR_Utils.Event.Remove (WaveVR_Utils.Event.CONTROLLER_MODEL_UNLOADED, OnControllerUnloaded); } #endregion void OnControllerUnloaded(params object[] args) { WaveVR_Controller.EDeviceType _type = (WaveVR_Controller.EDeviceType)args[0]; switch (_type) { case WaveVR_Controller.EDeviceType.Dominant: if (this.loaderInstance_DO != null) { PrintDebugLog("OnControllerUnloaded() remove DO" + this.loaderInstance_DO.name); this.loaderInstance_DO.SetActive(false); Destroy(this.loaderInstance_DO); this.loaderInstance_DO = null; } break; case WaveVR_Controller.EDeviceType.NonDominant: if (this.loaderInstance_ND != null) { PrintDebugLog("OnControllerUnloaded() remove ND" + this.loaderInstance_ND.name); this.loaderInstance_ND.SetActive(false); Destroy(this.loaderInstance_ND); this.loaderInstance_ND = null; } break; default: break; } }
이 항목이 도움이 되었나요?
예
아니오
제출
감사합니다! 귀하의 피드백은 다른 사람들이 가장 도움이 되는 정보를 보는 데 도움이 됩니다.