private bool getComponentParameter(GameObject controller, CComponent comp) { bool ret = false; var ch = controller.transform.childCount; for (int i = 0; i < ch; i++) { GameObject child = controller.transform.GetChild(i).gameObject; if (comp == CComponent.Beam) { WaveVR_Beam wb = child.GetComponentInChildren <WaveVR_Beam>(); if (wb != null) { ret = wb.ShowBeam; PrintDebugLog("getComponentParameter() wb.ShowBeam is " + ret); break; } } else if (comp == CComponent.ControllerPointer) { WaveVR_ControllerPointer wcp = child.GetComponentInChildren <WaveVR_ControllerPointer>(); if (wcp != null) { ret = wcp.ShowPointer; PrintDebugLog("getComponentParameter() wcp.ShowPointer is " + ret); break; } } } return(ret); }
private void UpdateReticlePointer(EventController event_controller) { WVR_DeviceType _type = event_controller.device; GameObject _prevObject = event_controller.prevRaycastedObject; PointerEventData _event_data = event_controller.event_data; WaveVR_ControllerPointer _pointer = event_controller.pointer; WaveVR_Beam _beam = event_controller.beam; if (_pointer != null && _beam != null) { Vector3 _intersectionPosition = GetIntersectionPosition(_event_data.enterEventCamera, _event_data.pointerCurrentRaycast); GameObject _go = GetRaycastedObject(_type); if (_go != _prevObject) { if (_go != null) { _pointer.SetPointerColor(new Color32(11, 220, 249, 255)); _pointer.OnPointerEnter(_event_data.enterEventCamera, _go, _intersectionPosition, true); _beam.SetEndOffset(_intersectionPosition, false); } else { _pointer.SetPointerColor(Color.white); _pointer.OnPointerExit(_event_data.enterEventCamera, _prevObject); _beam.ResetEndOffset(); } } } }
private void SetEmitter(GameObject gobj) { WaveVR_Beam _beam = gobj.GetComponent <WaveVR_Beam> (); WaveVR_ControllerPointer _pointer = gobj.GetComponent <WaveVR_ControllerPointer> (); if (_beam == null && _pointer == null) { return; } WaveVR_Controller.EDeviceType _focus_dev = WaveVR_Controller.EDeviceType.Head; #if UNITY_EDITOR if (Application.isEditor) { _focus_dev = this.Type; } else #endif { WVR_DeviceType _focus_dt = WaveVR_Utils.WVR_GetFocusedController(); if (_focus_dt == WVR_DeviceType.WVR_DeviceType_Controller_Right) { _focus_dev = WaveVR_Controller.EDeviceType.Dominant; } if (_focus_dt == WVR_DeviceType.WVR_DeviceType_Controller_Left) { _focus_dev = WaveVR_Controller.EDeviceType.NonDominant; } } if (_focus_dev == WaveVR_Controller.EDeviceType.Head) { return; } if (_focus_dev != this.Type) { if (_beam != null) { PrintDebugLog("SetEmitter() focus type: " + _focus_dev + " hide beam."); _beam.ShowBeam = false; } if (_pointer != null) { PrintDebugLog("SetEmitter() focus type: " + _focus_dev + " hide pointer."); _pointer.ShowPointer = false; } } }
public override void OnInspectorGUI() { serializedObject.Update(); WaveVR_Beam myScript = target as WaveVR_Beam; myScript.ShowBeam = EditorGUILayout.Toggle("Show beam", myScript.ShowBeam); if (true == myScript.ShowBeam) { myScript.ListenToDevice = EditorGUILayout.Toggle(" Listen to device", myScript.ListenToDevice); if (true == myScript.ListenToDevice) { myScript.device = (WaveVR_Controller.EDeviceType)EditorGUILayout.EnumPopup(" device", myScript.device); } myScript.useSystemConfig = EditorGUILayout.Toggle(" Use system config", myScript.useSystemConfig); if (false == myScript.useSystemConfig) { EditorGUILayout.LabelField(" Custom settings"); myScript.updateEveryFrame = EditorGUILayout.Toggle(" Update beam per frame", myScript.updateEveryFrame); myScript.StartWidth = EditorGUILayout.FloatField(" Start width", myScript.StartWidth); myScript.EndWidth = EditorGUILayout.FloatField(" End width", myScript.EndWidth); myScript.StartOffset = EditorGUILayout.FloatField(" Start offset", myScript.StartOffset); myScript.EndOffset = EditorGUILayout.FloatField(" End offset", myScript.EndOffset); EditorGUILayout.Space(); myScript.useDefaultMaterial = EditorGUILayout.Toggle(" Use default material", myScript.useDefaultMaterial); if (false == myScript.useDefaultMaterial) { myScript.customMat = (Material)EditorGUILayout.ObjectField(" Custom material", myScript.customMat, typeof(Material), false); } else { myScript.StartColor = EditorGUILayout.ColorField(" Start color", myScript.StartColor); myScript.EndColor = EditorGUILayout.ColorField(" End color", myScript.EndColor); } } } if (GUI.changed) { EditorUtility.SetDirty((WaveVR_Beam)target); } }
private void SetupReticleBeam_Right() { if (reticlePointer_right == null) { reticlePointer_right = RightController.GetComponentInChildren <WaveVR_ControllerPointer> (); // Remove right reticle by default. if (reticlePointer_right != null) { reticlePointer_right.removePointer(); } } if (beam_right == null) { beam_right = RightController.GetComponentInChildren <WaveVR_Beam> (); } }
private void ForceSetActiveOfEmitter(ControllerInstance ci, bool enabled) { GameObject _controller = ci.instance; if (_controller != null) { if (ci.showBeam != enabled) { WaveVR_Beam _beam = _controller.GetComponentInChildren <WaveVR_Beam> (); if (_beam != null) { ci.showBeam = enabled; _beam.ShowBeam = enabled; PrintDebugLog("ForceSetActiveOfEmitter() Set " + ci.type + " controller " + _controller.name + ", index: " + ci.index + ", beam: " + _beam.ShowBeam); } } if (ci.showPointer != enabled) { WaveVR_ControllerPointer _pointer = _controller.GetComponentInChildren <WaveVR_ControllerPointer> (); if (_pointer != null) { ci.showPointer = enabled; _pointer.ShowPointer = enabled; PrintDebugLog("ForceSetActiveOfEmitter() Set " + ci.type + " controller " + _controller.name + ", index: " + ci.index + ", pointer: " + _pointer.ShowPointer); } } } else { if (Log.gpl.Print) { PrintDebugLog("ForceSetActiveOfEmitter() controller " + ci.type + " , index: " + ci.index + " controller is null, remove it from list."); } removeControllerInstance(ci.index); } }
private void renderControllerBeam(WVR_DeviceType type, bool result) { if (WaveVR_EventSystemControllerProvider.Instance != null) { GameObject ctrlr = WaveVR_EventSystemControllerProvider.Instance.GetControllerModel(type); if (ctrlr != null) { WaveVR_Beam beam = ctrlr.GetComponentInChildren <WaveVR_Beam>(); MeshRenderer bmr = null; if (beam != null) { bmr = beam.gameObject.GetComponentInChildren <MeshRenderer>(); } if (bmr != null) { bmr.enabled = result; } } } }
private bool ForceSetActiveOfEmitter(ControllerInstance ci, bool enabled) { bool _ret = false; GameObject _controller = ci.instance; if (_controller != null) { WaveVR_Beam _beam = _controller.GetComponentInChildren <WaveVR_Beam> (); WaveVR_ControllerPointer _pointer = _controller.GetComponentInChildren <WaveVR_ControllerPointer> (); if (_beam != null && _pointer != null) { _beam.ShowBeam = enabled & ci.ShowBeam; _pointer.ShowPointer = enabled & ci.showPointer; PrintDebugLog("ForceSetActiveOfEmitter() Set " + ci.type + " controller " + _controller.name + ", index: " + ci.index + ", beam: " + _beam.ShowBeam + ", pointer: " + _pointer.ShowPointer); _ret = true; } else { PrintIntervalLog(() => "ForceSetActiveOfEmitter() " + ci.type + " controller " + _controller.name + ", beam is " + (_beam == null ? "disabled" : "enabled") + ", pointer is " + (_pointer == null ? "disabled" : "enabled")); } } else { PrintDebugLog("ForceSetActiveOfEmitter() controller " + ci.type + " , index: " + ci.index + " controller is null, remove it from list."); removeControllerInstance(ci.index); } return(_ret); }
private void ApplyAdaptiveControllerParameters() { var ch = controllerPrefab.transform.childCount; for (int i = 0; i < ch; i++) { PrintInfoLog(controllerPrefab.transform.GetChild(i).gameObject.name); // get controller pointer if (controllerPrefab.transform.GetChild(i).gameObject.name == "ControllerPointer") { GameObject CM = controllerPrefab.transform.GetChild(i).gameObject; WaveVR_ControllerPointer cp = CM.GetComponent <WaveVR_ControllerPointer>(); if (cp != null) { cp.device = this.deviceType; PrintInfoLog("ControllerPointer is found"); } } // get model if (controllerPrefab.transform.GetChild(i).gameObject.name == "Model") { GameObject CM = controllerPrefab.transform.GetChild(i).gameObject; WaveVR_AdaptiveController ac = CM.GetComponent <WaveVR_AdaptiveController>(); if (ac != null) { ac.device = this.deviceType; var ret = ac.makeupControllerModel(renderModelNamePath, sessionid); PrintInfoLog("AdaptiveController is active: " + ret); } WaveVR_AdaptiveControllerActions aca = CM.GetComponent <WaveVR_AdaptiveControllerActions>(); if (aca != null) { aca.enableButtonEffect = this.enableButtonEffect; if (aca.enableButtonEffect) { PrintInfoLog("AdaptiveController button effect is active"); aca.device = this.deviceType; aca.useSystemConfig = this.useEffectSystemConfig; if (!this.useEffectSystemConfig) { aca.buttonEffectColor = this.buttonEffectColor; } } } } // get beam if (controllerPrefab.transform.GetChild(i).gameObject.name == "Beam") { GameObject CM = controllerPrefab.transform.GetChild(i).gameObject; WaveVR_Beam wb = CM.GetComponent <WaveVR_Beam>(); if (wb != null) { wb.useSystemConfig = this.useBeamSystemConfig; if (!this.useBeamSystemConfig) { PrintInfoLog("Beam doesn't use system config"); wb.updateEveryFrame = this.updateEveryFrame; wb.startWidth = this.startWidth; wb.endWidth = this.endWidth; wb.startOffset = this.startOffset; wb.endOffset = this.endOffset; wb.StartColor = this.StartColor; wb.EndColor = this.EndColor; } } } } }