private void longPressedHandler(object sender, GestureStateChangeEventArgs e) { if (e.State == Gesture.GestureState.Recognized) { // if we are not too small if (transform.localScale.x > 0.05f) { // break this cube into 8 parts for (int i = 0; i < 8; i++) { var obj = Instantiate(gameObject) as GameObject; var cube = obj.transform; cube.parent = transform.parent; cube.name = "Cube"; cube.localScale = 0.5f * transform.localScale; cube.position = transform.TransformPoint(directions[i] / 4); cube.GetComponent<Rigidbody>().AddForce(Power * Random.insideUnitSphere, ForceMode.Impulse); cube.GetComponent<Renderer>().material.color = Color.white; } Destroy(gameObject); } } else if (e.State == Gesture.GestureState.Failed) { stopGrowing(); } }
private void requiredToFailGestureStateChangedHandler(object sender, GestureStateChangeEventArgs e) { if ((sender as Gesture) != requireGestureToFail) { return; } switch (e.State) { case GestureState.Failed: requiredGestureFailed = true; if (delayedStateChange != GestureState.Possible) { setState(delayedStateChange); } break; case GestureState.Began: case GestureState.Recognized: case GestureState.Cancelled: if (state != GestureState.Failed) { setState(GestureState.Failed); } break; } }
/// <summary> /// Returns cached instance of EventArgs. /// This cached EventArgs is reused throughout the library not to alocate new ones on every call. /// </summary> /// <param name="state"> Current gesture state. </param> /// <param name="previousState"> Previous gesture state. </param> /// <returns>Cached EventArgs object.</returns> public static GestureStateChangeEventArgs GetCachedEventArgs(Gesture.GestureState state, Gesture.GestureState previousState) { if (instance == null) { instance = new GestureStateChangeEventArgs(); } instance.State = state; instance.PreviousState = previousState; return(instance); }
private void TapGestureOnStateChanged(object sender, GestureStateChangeEventArgs e) { if (Stopped) return; if (e.State == Gesture.GestureState.Cancelled || e.State == Gesture.GestureState.Ended || e.State == Gesture.GestureState.Failed) { EndHold(); } }
private void panStateChanged(object sender, GestureStateChangeEventArgs e) { switch (e.State) { case Gesture.GestureState.Began: case Gesture.GestureState.Changed: var gesture = (SimplePanGesture)sender; if (gesture.WorldDeltaPosition != Vector3.zero) { localPositionToGo += TransformUtils.GlobalToLocalPosition(transform, gesture.WorldDeltaPosition); } break; } }
private void TransformStateChanged(object sender, GestureStateChangeEventArgs e) { if (Stopped) return; if (e.State == Gesture.GestureState.Changed) { touchPosition += transformGesture.LocalDeltaPosition; ReorientLaser(); } else if (e.State == Gesture.GestureState.Ended) { StopLaser(); } }
private void longPressStateChangedHandler(object sender, GestureStateChangeEventArgs e) { switch (e.State) { case Gesture.GestureState.Recognized: case Gesture.GestureState.Failed: case Gesture.GestureState.Cancelled: reset(); break; } if (e.State == Gesture.GestureState.Recognized) { changeColor(); } }
private void rotateStateChanged(object sender, GestureStateChangeEventArgs e) { switch (e.State) { case Gesture.GestureState.Began: case Gesture.GestureState.Changed: var gesture = (SimpleRotateGesture)sender; if (Math.Abs(gesture.DeltaRotation) > 0.01) { if (transform.parent == null) { localRotationToGo = Quaternion.AngleAxis(gesture.DeltaRotation, gesture.RotationAxis)*localRotationToGo; } else { localRotationToGo = Quaternion.AngleAxis(gesture.DeltaRotation, transform.parent.InverseTransformDirection(gesture.RotationAxis)) * localRotationToGo; } } break; } }
private void requiredToFailGestureStateChangedHandler(object sender, GestureStateChangeEventArgs e) { if ((sender as Gesture) != requireGestureToFail) return; switch (e.State) { case GestureState.Failed: requiredGestureFailed = true; if (delayedStateChange != GestureState.Possible) { setState(delayedStateChange); } break; case GestureState.Began: case GestureState.Recognized: case GestureState.Cancelled: if (state != GestureState.Failed) setState(GestureState.Failed); break; } }
private void gestureStateChangedHandler(object sender, GestureStateChangeEventArgs e) { if (e.State != TargetState) return; if (SendEvent == null) return; Fsm.Event(SendEvent); }
void HandleStateChanged (object sender, GestureStateChangeEventArgs e) { if (e.State == Gesture.GestureState.Ended) { target.SendMessage (message, SendMessageOptions.RequireReceiver); } }
private void scaleStateChanged(object sender, GestureStateChangeEventArgs e) { switch (e.State) { case Gesture.GestureState.Began: case Gesture.GestureState.Changed: var gesture = (SimpleScaleGesture)sender; if (Math.Abs(gesture.LocalDeltaScale - 1) > 0.00001) { localScaleToGo *= gesture.LocalDeltaScale; } break; } }
private void panStateChanged(object sender, GestureStateChangeEventArgs e) { switch (e.State) { case Gesture.GestureState.Began: case Gesture.GestureState.Changed: var gesture = (SimplePanGesture)sender; var deltaPos = gesture.LocalDeltaPosition; if (deltaPos != Vector3.zero) localPositionToGo += deltaPos; break; } }
private void transformStateChangedHandler(object sender, GestureStateChangeEventArgs e) { //Debug.Log(e.State); switch (e.State) { case Gesture.GestureState.Began: case Gesture.GestureState.Changed: CurrentState = ObjectState.Transformed; RigidBody2D.isKinematic = true; idleTime = Time.time; SetLayer(0); break; case Gesture.GestureState.Ended: CurrentState = ObjectState.Launched; RigidBody2D.isKinematic = false; idleTime = Time.time; RigidBody2D.AddForce(((TransformGesture)sender).DeltaPosition * wall.Inertia, ForceMode2D.Impulse); break; } }
private void releaseStateChangedHandler(object sender, GestureStateChangeEventArgs e) { //Debug.Log(e.State); switch (e.State) { case Gesture.GestureState.Recognized: CurrentState = ObjectState.Released; RigidBody2D.isKinematic = false; idleTime = Time.time; break; } }
// On press private void pressStateChangedHandler(object sender, GestureStateChangeEventArgs e) { //Debug.Log(e.State); switch (e.State) { case Gesture.GestureState.Recognized: CurrentState = ObjectState.Pressed; RigidBody2D.isKinematic = true; idleTime = Time.time; SetLayer(0); //wall.UpdateLayers(); break; } }