/// <summary> /// 旋转动作 /// </summary> /// <param name="handOperate">Hand operate.</param> public void OnRotate(HandOperate handOperate) { //如果左手以及处于旋转状态,则没必要进行下一步了 if (!handOperate.IsRotating) { if (IsRotate(handOperate) && Operate.InputHand.ScreenVector.magnitude > 5) { Operate.InputHand.HandStatus = MInputHandStatus.Rotate; IsRotating = true; } if (Operate.InputHand.IsRotateStatus) { EventCameraRotate.SendListener(Operate.InputHand.ScreenVector); } else { if (IsRotating) { EventCameraRotate.SendListener(Vector3.zero); IsRotating = false; } } } }
/// <summary> /// 手势动作的判定,用户来实现旋转和缩放 /// </summary> /// <param name="handOperate">Hand operate.</param> public void OnGestureAction(HandOperate handOperate, bool isRotate) { switch (MSwitchManager.CurrentMode) { case OperateModeType.Move: break; case OperateModeType.Rotate: EventCameraRotate.SendListener(Operate.InputHand.ScreenVector); break; case OperateModeType.Zoom: // EventCameraZoom.SendListener(Operate.InputHand.ScreenVector.x / 1200); break; case OperateModeType.Tool: break; default: break; } #region old ////如果左手以及处于旋转状态,则没必要进行下一步了 //if (!handOperate.IsActioning) //{ // if (IsAction(handOperate) && Operate.InputHand.ScreenVector.magnitude > 5) // { // if (isRotate) // Operate.InputHand.HandStatus = MInputHandStatus.Rotate; // else // Operate.InputHand.HandStatus = MInputHandStatus.Zoom; // IsActioning = true; // } // if (isRotate) // { // if (Operate.InputHand.IsRotateStatus) // { // EventCameraRotate.SendListener(Operate.InputHand.ScreenVector); // } // else // { // if (IsActioning) // { // EventCameraRotate.SendListener(Vector3.zero); // IsActioning = false; // } // } // } // else // { // if (Operate.InputHand.IsZoomStatus) // { // EventCameraZoom.SendListener(Operate.InputHand.ScreenVector.x / 1200); // } // else // { // if (IsActioning) // { // EventCameraZoom.SendListener(0); // IsActioning = false; // } // } // } //} #endregion }
/// <summary> /// 是否支持旋转 /// </summary> /// <returns><c>true</c>, if rotate was ised, <c>false</c> otherwise.</returns> /// <param name="handOperate">Hand operate.</param> public bool IsAction(HandOperate handOperate) { return(Operate.InputHand.HandStatus == MInputHandStatus.Grip && handOperate.Operate.InputHand.HandStatus == MInputHandStatus.Idle); }
public bool IsZoom(HandOperate handOperate) { return(Operate.InputHand.HandStatus == MInputHandStatus.Grip && handOperate.Operate.InputHand.HandStatus == MInputHandStatus.Grip); }