-
VIVE Wave
-
SDK
-
发布您的应用程序
-
-
VIVE SRWorks
-
VIVE 眼球和面部追踪
-
VIVE 手势追踪
-
VIVE 3DSP Audio
-
VIVEPORT
-
VIVE Business 串流
-
面部追踪
-
如何在运行时中获取操控手柄对象?
WaveVR 使用 Controller Loader 以在运行时中加载操控手柄。因此,无法在编辑器中修改操控手柄对象。
在Assets > WaveVR > Extra > GenericModel > Resources > Controller 中,Generic Controller Model 预制对象显示了 WaveVR 操控手柄的架构。
前往在操控手柄模型中找到光束和指针(示例代码),以了解如何获取光束和指针。
在操控手柄模型中找到光束和指针(示例代码)
请按照以下步骤找到光束和指针。
- 监听 CONTROLLER_MODEL_LOADED 广播以接收操控手柄实例。
- 寻找所有操控手柄的子对象。
-
在子对象中寻找具有光束/指针的对象。
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); }
此内容对您有帮助吗?
是
否
提交
谢谢!您的反馈可以帮助其他人了解最有用的信息。