public ControllerInputIndex GetCurrentSprite(Vector2 axis) { TouchpadDirection touchpadDirection = ViveSR_Experience_ControllerDelegate.GetTouchpadDirection(axis, true); switch (touchpadDirection) { case TouchpadDirection.Mid: currentInput = ControllerInputIndex.mid; break; case TouchpadDirection.Right: currentInput = ControllerInputIndex.right; break; case TouchpadDirection.Left: currentInput = ControllerInputIndex.left; break; case TouchpadDirection.Up: currentInput = ControllerInputIndex.up; break; case TouchpadDirection.Down: currentInput = ControllerInputIndex.down; break; } return(currentInput); }
public void RunSpriteAnimation() { if (currentInput != previousSprite) { //Previous... if (previousSprite != ControllerInputIndex.none) { if (touchpadScript.GetColor(previousSprite.ToTouchpadDirection()) != ViveSR_Experience_Demo.instance.DisableColor) { touchpadScript.SetColor(previousSprite.ToTouchpadDirection(), touchpadImages_isFocused[(int)previousSprite] ? ViveSR_Experience_Demo.instance.BrightFrameColor : ViveSR_Experience_Demo.instance.BrightFrameColor); } } //Current... if (currentInput != ControllerInputIndex.none) { SetCanvas(TextCanvas.onTouchPad, true); touchpadScript.StartAnimate(currentInput.ToTouchpadDirection()); } else { SetCanvasText(TextCanvas.onTouchPad, ""); SetCanvas(TextCanvas.onTouchPad, false); touchpadScript.StopAnimate(); } previousSprite = currentInput; } }
public static TouchpadDirection ToTouchpadDirection(this ControllerInputIndex controllerInputIndex) { Dictionary <ControllerInputIndex, TouchpadDirection> dir = new Dictionary <ControllerInputIndex, TouchpadDirection> { { ControllerInputIndex.none, TouchpadDirection.None }, { ControllerInputIndex.up, TouchpadDirection.Up }, { ControllerInputIndex.down, TouchpadDirection.Down }, { ControllerInputIndex.left, TouchpadDirection.Left }, { ControllerInputIndex.right, TouchpadDirection.Right }, { ControllerInputIndex.mid, TouchpadDirection.Mid } }; return(dir[controllerInputIndex]); }
public static string _ToString(this ControllerInputIndex controllerInputIndex) { Dictionary <ControllerInputIndex, string> dir = new Dictionary <ControllerInputIndex, string> { { ControllerInputIndex.right, "Right" }, { ControllerInputIndex.left, "Left" }, { ControllerInputIndex.up, "Up" }, { ControllerInputIndex.down, "Down" }, { ControllerInputIndex.mid, "Mid" }, { ControllerInputIndex.trigger, "Trigger" }, { ControllerInputIndex.grip, "Grip" }, }; return(dir[controllerInputIndex]); }
public void ToggleTutorial(bool isOn) { IsTutorialOn = isOn; if (!isOn) { SetCanvas(TextCanvas.onTouchPad, false); } SetCanvas(TextCanvas.onRotator, isOn); SetTouchpadImage(isOn); SetTouchpadSprite(isOn, ControllerInputIndex.left, ControllerInputIndex.right, ControllerInputIndex.mid); if (!isOn) { currentInput = ControllerInputIndex.none; RunSpriteAnimation(); //stop previous coroutine; } }
public string GetDefaultControllerTextsMessage(ControllerInputIndex defaultStringIndex) { switch (defaultStringIndex) { case ControllerInputIndex.right: return("[Click] Rotate right"); case ControllerInputIndex.left: return("[Click] Rotate left"); case ControllerInputIndex.up: return("[Click] Move up"); case ControllerInputIndex.down: return("[Click] Move down"); case ControllerInputIndex.mid: return("[Click] Confirm"); case ControllerInputIndex.trigger: return("Hold Trigger"); default: return(""); } }
void HandleTouchpad_Tutorial(ButtonStage buttonStage, Vector2 axis) { if (IsTutorialOn) { previosuInput = currentInput; currentInput = GetCurrentSprite(axis); ViveSR_Experience_IButton CurrentButton = ViveSR_Experience_Demo.instance.Rotator.CurrentButton; #region VIVEPro if (ViveSR_Experience.instance.CurrentDevice == DeviceType.Vive) { switch (buttonStage) { case ButtonStage.Press: InputHandlers[CurrentButton.ButtonType].MatchRotator(); break; case ButtonStage.PressUp: InputHandlers[CurrentButton.ButtonType].MatchRotatorUp(); break; case ButtonStage.PressDown: InputHandlers[CurrentButton.ButtonType].ConfirmSelection(); break; case ButtonStage.TouchUp: InputHandlers[CurrentButton.ButtonType].ResetTouchpadSprite(); break; case ButtonStage.Touch: InputHandlers[CurrentButton.ButtonType].SetTouchpadText(axis); break; } } #endregion #region VIVET2 else if (ViveSR_Experience.instance.CurrentDevice == DeviceType.ViveT2) { switch (buttonStage) { case ButtonStage.Press: InputHandlers[CurrentButton.ButtonType].MatchRotator(); break; case ButtonStage.PressUp: InputHandlers[CurrentButton.ButtonType].MatchRotatorUp(); break; case ButtonStage.PressDown: InputHandlers[CurrentButton.ButtonType].ConfirmSelection(); break; case ButtonStage.TouchUp: InputHandlers[CurrentButton.ButtonType].ResetTouchpadSprite(); break; case ButtonStage.Touch: InputHandlers[CurrentButton.ButtonType].SetTouchpadText(axis); if (currentInput != previosuInput) { InputHandlers[CurrentButton.ButtonType].MatchRotator(); } break; } } #endregion } }