void HandleTrigger_AdjustSliders(ButtonStage buttonStage, Vector2 axis) { if (isOn) { switch (buttonStage) { case ButtonStage.PressDown: isTriggerDown = true; ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onController, "[Depth Panel]\nAdjust Values", false); ViveSR_Experience_ControllerDelegate.touchpadDelegate -= HandleTouchpad_ResetDepthPanel; ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false); break; case ButtonStage.PressUp: isTriggerDown = false; ViveSR_Experience_ControllerDelegate.touchpadDelegate += HandleTouchpad_ResetDepthPanel; if (!isTouchpadDown) { ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true); ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onController, "", false); } break; } } }
void HandleTrigger_DartGenerator(ButtonStage buttonStage, Vector2 axis) { if (!enabled) { return; } if (!ViveSR_RigidReconstruction.IsExportingMesh && !ViveSR_RigidReconstruction.IsScanning && enabled) { switch (buttonStage) { case ButtonStage.PressDown: if (Time.timeSinceLevelLoad - dartGeneratorMgr.tempTime > dartGeneratorMgr.coolDownTime) { TriggerPress(); } break; case ButtonStage.Press: if (isHolding) { TriggerHold(); } break; case ButtonStage.PressUp: if (isHolding) { TriggerRelease(); dartGeneratorMgr.tempTime = Time.timeSinceLevelLoad; } break; } } }
public void handleTouchpad_Play(ButtonStage buttonStage, Vector2 axis) { TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, false); switch (buttonStage) { case ButtonStage.PressDown: switch (touchpadDirection) { case TouchpadDirection.Up: this.DelayOneFrame(() => { if (isOn) { StaticMeshScript.ClearHintLocators(); PortalScript.PortalManager.gameObject.SetActive(true); ViveSR_DualCameraRig.Instance.VirtualCamera.cullingMask &= ~(1 << LayerMask.NameToLayer("UI")); PortalScript.PortalManager.TurnOnCamera(); portalCamerasEnabledEvent.Invoke(); Transform controller_fwd = PlayerHandUILaserPointer.LaserPointer.gameObject.transform; npcGenerator.Play(controller_fwd.position + controller_fwd.forward * 8, controller_fwd.forward, MR_Chairs); } }); break; } break; } }
void HandleGrip_SemanticObjOperation(ButtonStage buttonStage, Vector2 axis) { if (buttonStage == ButtonStage.PressDown) { ShowNextSemanticType(); } }
void HandleGrip(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: StaticMeshScript.SwitchShowCollider(StaticMeshScript.MeshShowMode == ShowMode.All? ShowMode.None : ShowMode.All); break; } }
// Start is called before the first frame update void Start() { // オーディオマネージャーが存在するかの確認 //if(!AudioManager.Instance){ // 存在しなければ生成 // Instantiate(audioManagerPrefab, Vector3.zero, Quaternion.identity); //Debug.Log("AudioManager.Instanceを生成します"); //} // BGMがなっていなければ、ゲーム用のBGMを鳴らす //if(!AudioManager.Instance.IsPlayingBGM()){ // AudioManager.Instance.PlayBGM(BGM_OUTGAME); //} // ボリュームを下げる //AudioManager.Instance.BgmVolume(0.5f); // ステージクリア数 int clearMax = PlayerPrefs.GetInt("StageClear", 0); // 子オブジェクトを全削除 foreach (Transform n in contents.transform) { GameObject.Destroy(n.gameObject); } // stageMax 分 buttonPrefab を生成 for (int i = 0; i < stageMax; i++) { // contents 内に buttonPrefab を生成 GameObject obj = Instantiate( buttonPrefab, Vector3.zero, Quaternion.identity, contents.transform ) as GameObject; // ボタンの情報を変更 ButtonStage button = obj.GetComponent <ButtonStage>(); // ステージをセット int stage = i + 1; // クリアを確認 bool flag = false; // クリアしているステージより下なら選択できるようにする if (i <= clearMax) { flag = true; } // ボタンを設定 // Debug.Log(stage); button.SetStage(flag, stage); } }
void HandleGrip(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: DynamicMeshScript.SetMeshDisplay(!DynamicMeshScript.ShowDynamicCollision); break; } }
void HandleTouchpad(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.Press: DepthControlScript.ResetPanelPos(); break; } }
void HandleTouchpadInput_SubMenu(ButtonStage buttonStage, Vector2 axis) { if (isSubMenuOn) { touchpadDirection_prev = touchpadDirection; touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, true); #region VIVEPro if (ViveSR_Experience.instance.CurrentDevice == DeviceType.Vive) { switch (buttonStage) { case ButtonStage.PressDown: if (touchpadDirection == TouchpadDirection.Mid) { Execute(); } if (AllowHover()) { switch (touchpadDirection) { case TouchpadDirection.Up: HoverBtn(false); break; case TouchpadDirection.Down: HoverBtn(true); break; } } break; } } #endregion #region VIVET2 else if (ViveSR_Experience.instance.CurrentDevice == DeviceType.ViveT2) { switch (buttonStage) { case ButtonStage.PressDown: if (touchpadDirection == TouchpadDirection.Mid) { Execute(); } break; } if (AllowHover() && touchpadDirection != touchpadDirection_prev) { switch (touchpadDirection) { case TouchpadDirection.Up: HoverBtn(false); break; case TouchpadDirection.Down: HoverBtn(true); break; } } } #endregion } }
public void handleTouchpad_MRChair(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, false); handleTouchpad_MRChair_Pressdown(touchpadDirection); break; } }
void HandleTouchpad_DartControl(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, false); HandleTouchpad_DartControl_PressDown(touchpadDirection); break; } }
void ClickListener(SteamVR_Action_Boolean fromAction, SteamVR_Input_Sources fromSource, bool newState) { if (fromSource != SteamVR_Input_Sources.LeftHand && fromSource != SteamVR_Input_Sources.RightHand) { return; } // Get button according to control type ViveControlType controlType = ViveControlInputs.First(x => fromAction == x.Value.actionClick || fromAction == x.Value.actionTouch).Key; ViveControlInput input = ViveControlInputs[controlType]; // Get button click status ButtonStage status = GetInputActionStatus(fromAction, input); if (status == ButtonStage.None) { return; } // Call each button's delegate behavior if (controlType == ViveControlType.Grip) { if (gripDelegate != null) { gripDelegate(status, Vector2.zero); } if (gripDelegate_Late != null) { gripDelegate_Late(status, Vector2.zero); } } else if (controlType == ViveControlType.Trigger) { if (triggerDelegate != null) { triggerDelegate(status, Vector2.zero); } if (triggerDelegate_Late != null) { triggerDelegate_Late(status, Vector2.zero); } } else if (controlType == ViveControlType.Touchpad) { if (touchpadDelegate != null) { touchpadDelegate(status, input.actionPosition.GetAxis(hand.handType)); } if (touchpadDelegate_Late != null) { touchpadDelegate_Late(status, input.actionPosition.GetAxis(hand.handType)); } } }
void HandleTrigger(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false); break; case ButtonStage.PressUp: ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true); break; } }
void HandleTrigger(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: ViveSR_Experience_ControllerDelegate.touchpadDelegate -= HandleTouchpad; break; case ButtonStage.PressUp: ViveSR_Experience_ControllerDelegate.touchpadDelegate += HandleTouchpad; break; } }
void HandleGrip_SwitchEffects(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: EffectsScript.CurrentEffectNumber += 1; if (EffectsScript.CurrentEffectNumber == (int)ImageEffectType.TOTAL_NUM) { EffectsScript.CurrentEffectNumber = -1; } EffectsScript.ChangeShader(EffectsScript.CurrentEffectNumber); break; } }
void HandleTouchpad(ButtonStage buttonStage, Vector2 axis) { if (!isTriggerDown) { switch (buttonStage) { case ButtonStage.PressDown: SwitchModeScript.SwithMode(SwitchModeScript.currentMode == DualCameraDisplayMode.MIX ? DualCameraDisplayMode.VIRTUAL : DualCameraDisplayMode.MIX); EffectsScript.ChangeShader(-1); triggerCanvas.SetActive(SwitchModeScript.currentMode == DualCameraDisplayMode.MIX); break; } } }
void HandleTrigger_DrawTiles(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: isTriggerDown = true; EnableTileSpawn(); break; case ButtonStage.PressUp: isTriggerDown = false; DisableTileSpawn(); break; } }
private void HandleTouchpad_MeshOperation(ButtonStage buttonStage, Vector2 axis) { if (isTriggerDown) { return; } switch (buttonStage) { case ButtonStage.PressDown: TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, false); HandleTouchpad_MeshOperation_PressDown(touchpadDirection); break; } }
//private void HandleTouchpad_SemanticObjOperation(ButtonStage buttonStage, Vector2 axis) //{ // if (!isTriggerDown) // { // switch (buttonStage) // { // case ButtonStage.PressDown: // TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, false); // if (touchpadDirection == TouchpadDirection.Up) // { // SemanticDrawer.ShowAllObjects(); // HintText.text = "Show All"; // } // else if (touchpadDirection == TouchpadDirection.Left) // { // SemanticDrawer.ClearAllObjects(); // ShowPreviousSemanticType(); // } // else if (touchpadDirection == TouchpadDirection.Right) // { // SemanticDrawer.ClearAllObjects(); // ShowNextSemanticType(); // } // else if (touchpadDirection == TouchpadDirection.Down) // { // SemanticDrawer.ClearAllObjects(); // HintText.text = "Show Scene Objects"; // } // break; // } // } //} //private void ShowNextSemanticType() //{ // int type, input_type_int; // type = input_type_int = (int)currentSemanticType; // do { // type = ++type % (int)SceneUnderstandingObjectType.NumOfTypes; // if (type == input_type_int) // { // SemanticDrawer.ShowBoundingBoxAndIconByType(type, true, true); // break; // } // } while (type == (int)SceneUnderstandingObjectType.NONE || !SemanticDrawer.ShowBoundingBoxAndIconByType(type, true, true)); // StaticMeshScript.ShowSemanticColliderByType((SceneUnderstandingObjectType)type); // currentSemanticType = (SceneUnderstandingObjectType)type; // HintText.text = "Show "+ ViveSR_SceneUnderstanding.SemanticTypeToString(currentSemanticType); //} //private void ShowPreviousSemanticType() //{ // int type, input_type_int; // type = input_type_int = (int)currentSemanticType; // do // { // if (--type < 0) type += (int)SceneUnderstandingObjectType.NumOfTypes; // if (type == input_type_int) // { // SemanticDrawer.ShowBoundingBoxAndIconByType(type, true, true); // break; // } // } while (type == (int)SceneUnderstandingObjectType.NONE || !SemanticDrawer.ShowBoundingBoxAndIconByType(type, true, true)); // StaticMeshScript.ShowSemanticColliderByType((SceneUnderstandingObjectType)type); // currentSemanticType = (SceneUnderstandingObjectType)type; // HintText.text = "Show " + ViveSR_SceneUnderstanding.SemanticTypeToString(currentSemanticType); //} //void HandleTrigger_SelectSemanticObject(ButtonStage buttonStage, Vector2 axis) //{ // switch (buttonStage) // { // case ButtonStage.PressDown: // SemanticDrawer.enablePlacer = EnablePlacer; // SemanticDrawer.TriggerPressDown(); // isTriggerDown = true; // break; // case ButtonStage.PressUp: // isTriggerDown = false; // SceneUnderstandingObjectType type = SemanticDrawer.TriggerPressUp(); // //HintText.text = "Show " + ViveSR_SceneUnderstanding.SemanticTypeToString(type); // break; // } //} void HandleTrigger_DisplayRay(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: SemanticDrawer.TriggerPressDown(); StaticMeshScript.SetScanning(true); isTriggerDown = true; break; case ButtonStage.PressUp: SemanticDrawer.TriggerPressUp(); StaticMeshScript.SetScanning(false); isTriggerDown = false; break; } }
void HandleTrigger(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: LeftText.enabled = true; RightText.enabled = true; TriggerCanvas.SetActive(false); break; case ButtonStage.PressUp: LeftText.enabled = false; RightText.enabled = false; TriggerCanvas.SetActive(true); break; } }
void HandleTrigger_ThrowableItemUI(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: TriggerHint.SetActive(false); RightHint.SetActive(true); LeftHint.SetActive(true); break; case ButtonStage.PressUp: TriggerHint.SetActive(true); RightHint.SetActive(false); LeftHint.SetActive(false); break; } }
void HandleTrigger_Tutorial(ButtonStage buttonStage, Vector2 axis) { ViveSR_Experience_IButton CurrentButton = ViveSR_Experience_Demo.instance.Rotator.CurrentButton; if (IsTutorialOn && CurrentButton.isOn) { switch (buttonStage) { case ButtonStage.PressDown: InputHandlers[CurrentButton.ButtonType].TriggerDown(); break; case ButtonStage.PressUp: InputHandlers[CurrentButton.ButtonType].TriggerUp(); break; } } }
void HandleTouchpad_ResetCameraControlPanel(ButtonStage buttonStage, Vector2 axis) { if (!isOn) { return; } TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, true); switch (buttonStage) { case ButtonStage.PressDown: HandleTouchpad_ResetCameraControlPanel_PressDown(touchpadDirection); break; case ButtonStage.PressUp: HandleTouchpad_ResetCameraControlPanel_PressUp(touchpadDirection); break; } }
public void HandleGrip_SwitchMeshDisplay(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: bool allowSwitch = StaticMeshScript.CheckModelFileExist() && !ViveSR_RigidReconstruction.IsExportingMesh && !ViveSR_RigidReconstruction.IsScanning; if (!allowSwitch) { break; } SwitchMeshDisplayMode((MeshDisplayMode)(((int)meshDisplayMode + 1) % (int)MeshDisplayMode.MaxNum)); break; } }
void HandleTouchpad(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, false); if (touchpadDirection == TouchpadDirection.Up) { DynamicMeshScript.SetMeshDisplay(!DynamicMeshScript.ShowDynamicCollision); DisplayMesh.text = DisplayMesh.text == "[Show]" ? "[Hide]" : "[Show]"; } else if (touchpadDirection == TouchpadDirection.Down) { dartGenerator.DestroyObjs(); } break; } }
void HandleTrigger(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: if (Time.timeSinceLevelLoad - dartGeneratorMgr_dynamic.tempTime > dartGeneratorMgr_dynamic.coolDownTime) { ViveSR_Experience_Demo.instance.ButtonScripts[MenuButton.EnableMesh].SubMenu.RenderSubBtns(false); ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false); disabled = true; } break; case ButtonStage.PressUp: disabled = false; ViveSR_Experience_Demo.instance.ButtonScripts[MenuButton.EnableMesh].SubMenu.RenderSubBtns(true); ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true); break; } }
void HandleTrigger(ButtonStage buttonStage, Vector2 axis) { if (SwitchModeScript.currentMode == DualCameraDisplayMode.MIX) { switch (buttonStage) { case ButtonStage.PressDown: EffectsScript.GenerateEffectBall(); attachPointCanvas.SetActive(false); isTriggerDown = true; break; case ButtonStage.PressUp: EffectsScript.HideEffectBall(); attachPointCanvas.SetActive(true); isTriggerDown = false; break; } } }
void HandleTouchpad(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, true); switch (touchpadDirection) { case TouchpadDirection.Up: PortalScript.ResetPortalPosition(); break; case TouchpadDirection.Down: dartGeneratorMgr.DestroyObjs(); break; } break; } }
void HandleTrigger_Effects(ButtonStage buttonStage, Vector2 axis) { switch (buttonStage) { case ButtonStage.PressDown: ViveSR_Experience.instance.SoundManager.PlayAtAttachPoint(AudioClipIndex.EffectBall); ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false); ViveSR_Experience_Demo.instance.EffectsScript.GenerateEffectBall(); for (int i = 0; i < EffectBallRenderers.Count; i++) { EffectBallRenderers[i].enabled = true; } break; case ButtonStage.PressUp: ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true); ViveSR_Experience_Demo.instance.EffectsScript.HideEffectBall(); break; } }
void HandleTouchpad_ResetDepthPanel(ButtonStage buttonStage, Vector2 axis) { if (isOn) { TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, true); switch (buttonStage) { case ButtonStage.PressDown: switch (touchpadDirection) { case TouchpadDirection.Up: isTouchpadDown = true; ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onController, "[Depth Panel]\nMove the Panel", false); ViveSR_Experience_ControllerDelegate.triggerDelegate -= HandleTrigger_AdjustSliders; ViveSR_Experience_Demo.instance.Rotator.RenderButtons(false); StartCoroutine(ResetPanelPos()); break; } break; case ButtonStage.PressUp: isTouchpadDown = false; ViveSR_Experience_ControllerDelegate.triggerDelegate += HandleTrigger_AdjustSliders; if (!isTriggerDown) { ViveSR_Experience_HintMessage.instance.SetHintMessage(hintType.onController, "", false); ViveSR_Experience_Demo.instance.Rotator.RenderButtons(true); } break; } } }