/// <summary> /// Compare gesture with recognizer /// </summary> /// <param name="gestureResult">Gesture result.</param> void CheckGesture(Result gestureResult) { if (gestureResult.Score > gestureThreshold) { // Check against current gesture GestureObject gestureObject = gestureHolders[0].holder.GetComponentInChildren <GestureObject> (); if (gestureResult.GestureClass == gestureObject.name) { // If auto game mode, move player to first animal position if (GameManager.instance.gameMode == GameMode.Auto) { float animalX = AnimalManager.instance.GetFirstAnimalX(); // Only spawn hand if animal exists if (animalX != Mathf.Infinity) { player.transform.position = new Vector3(animalX, player.transform.position.y); AnimalManager.instance.AnimalsShift(); Instantiate(hand, player.transform.position, Quaternion.identity); } } else { // Spawn hand object at wherever player is located Instantiate(hand, player.transform.position, Quaternion.identity); } CreateNewGesture(); } } }
public void StartCapture(GestureObject listener) { if (InGamePause.instance.GetIsPaused()) return; _capturingGestures = true; _listenerObject = listener; _gradientIndices.Clear(); _currentGradientStartPosition = Input.mousePosition; CursorManager.instance.ChangeCursorStatus(CursorManager.CursorGestureStatus.Capturing); }
/**************************************************** * Gesture Listeners **/ public void GestureListener ( GestureObject p_gesture ) { m_dragonStateMachine.Trigger(p_gesture); }
// + LA 092713: Refactored Trigger method public void Trigger ( GestureObject p_gesture ) { bool _isHitinInteractiveArea = m_hitCollider.GetIsHitAt(p_gesture.position,true); bool _isSwipeValid = m_hitCollider.GetIsHitAt(m_startPoint,true); GameObject TouchObject = null; StatsManager.Instance.DragonTouchPart = ""; if( p_gesture.hit.collider != null ) { StatsManager.Instance.DragonTouchPart = p_gesture.hit.collider.gameObject.tag; TouchObject = p_gesture.hit.collider.gameObject; } // Event Params string strEvent = ""; string strEventType = ""; # region Gesture Up if( p_gesture.type == GestureManager.GestureType.Up ) { strEvent = "Event_Up"; strEventType = "Type_Touch"; m_rubMeter.Disable(); //m_soapParticle.SetActive( false ); #region Rubbing temp fix on Touch Up if(StatsManager.Instance.DragonState == "Rubbing" && this.IsInteractible()) { m_rubbingTargetDirection = Vector2.zero; m_rubbingObjectIndex.Clear(); UpdateRubbingPosition(0.8f); } #endregion bSatisfiedGesture = false; } #endregion #region Gesture Down else if( p_gesture.type == GestureManager.GestureType.Down ) { // strEvent = "Event_Down"; // strEventType = "Type_Touch"; switch( StatsManager.Instance.DragonMode ) { case StatsManager.MODE_NORMAL: strEvent = "Event_Down"; strEventType = "Type_Touch"; if( StatsManager.Instance.DragonState == "Rubbing" && this.IsInteractible() ) { if(m_rubbingTargetDirection == m_rubbingDirection && TouchObject != null) { m_rubbingTargetDirection = Vector2.zero; m_rubbingDirection = Vector2.zero; switch(p_gesture.hit.collider.gameObject.name) { case "RubTopCollider": m_rubbingTargetDirection = new Vector2(0,1); break; case "RubBottomCollider": m_rubbingTargetDirection = new Vector2(0,-1); break; case "RubLeftCollider": m_rubbingTargetDirection = new Vector2(-1,0); break; case "RubRightCollider": m_rubbingTargetDirection = new Vector2(1,0); break; } UpdateRubbingPosition(0.5f); } } break; case StatsManager.MODE_IUC: strEvent = "Event_Down"; strEventType = "Type_Touch"; if( !JawCruncher.IsThrownJC() ) { PettingMain.Instance.GestureManager.EnableHold(); StatsManager.Instance.touchPosition = p_gesture.position; m_fastSwipeCounter = 0.0f; } break; case StatsManager.MODE_ACT1: strEvent = "Event_Down"; strEventType = "Type_Touch"; break; case StatsManager.MODE_DRAGONSALVE: strEvent = "Event_Down"; strEventType = "Type_Touch"; break; } } #endregion #region Gesture Tap / Double Tap else if( p_gesture.type == GestureManager.GestureType.Tap ) { if( p_gesture.tapCount == 2 ) { switch( StatsManager.Instance.DragonMode ) { case StatsManager.MODE_NORMAL: if( _isHitinInteractiveArea ) { strEventType = "Type_Touch"; strEvent = "Event_DoubleTap"; StatsManager.Instance.ResetRubCount(); // + ET 091913 TEMP ON/OFF OF RUBBING COLLIDERS StopCoroutine("SetColliderVisible"); StartCoroutine(SetColliderVisible(0.5f)); // - ET } break; case StatsManager.MODE_IUC: break; case StatsManager.MODE_WATERBUCKET: /* if( TouchObject.transform.parent.name.Contains("WaterBucket") ) { strEventType = "Type_From_Inventory"; strEvent = "Event_Water_Bucket"; } // + LA 092713: This is to not conflict with the other double tap event else { strEventType = "Type_Touch"; strEvent = "Event_DoubleTap"; } //*/ break; case StatsManager.MODE_TOUCHMOMENT: break; case StatsManager.MODE_ACT1: if( TutorialController.GTutState == TutorialController.ETutorialState.PostPetting ) { if( _isHitinInteractiveArea ) { strEventType = "Type_Touch"; strEvent = "Event_DoubleTap"; } } if( TutorialController.GTutState == TutorialController.ETutorialState.Petting ) { if( _isHitinInteractiveArea ) { strEventType = "Type_Touch"; strEvent = "Event_DoubleTap"; // + ET 110513 SUCCESS BURST Vector3 pos = m_feedbackCamera.camera.ScreenToWorldPoint( new Vector3( p_gesture.position.x, p_gesture.position.y, 2 )); m_successBurst.transform.position=pos; m_successParticle.Play(); // - ET StatsManager.Instance.ResetRubCount(); // + ET 091913 TEMP ON/OFF OF RUBBING COLLIDERS StopCoroutine("SetColliderVisible"); StartCoroutine(SetColliderVisible(0.5f)); // - ET } } if( StatsManager.Instance.DragonState == "Analyzing_Near" ) { if( TouchObject != null && TouchObject.transform.name.Contains("Floor") ) { strEventType = "Type_Touch"; strEvent = "Event_DoubleTap"; } } break; } m_bwillDoubleTap = true; } else if( p_gesture.tapCount == 1 ) { // strEventType = "Type_Touch"; // strEvent = "Event_Tap"; switch( StatsManager.Instance.DragonMode ) { case StatsManager.MODE_IUC: strEventType = "Type_Touch"; strEvent = "Event_Tap"; JawCruncherStateController controller = PettingMain.Instance.DragonGameObject.GetComponent< JawCruncherStateController >(); if( controller.SetGetState == JawCruncherStateController.JC_STATE.FixNF && controller != null && controller.m_bIsEnableToTap ) { Vector3 pos = m_feedbackCamera.camera.ScreenToWorldPoint( new Vector3( p_gesture.position.x, p_gesture.position.y, 2 )); m_successBurst.transform.position=pos; m_successParticle.Play(); controller.SetGetState = JawCruncherStateController.JC_STATE.Drop; } break; case StatsManager.MODE_WATERBUCKET: if( TouchObject != null && TouchObject.transform.parent.name.Contains("WaterBucket") ) { strEventType = "Type_From_Inventory"; strEvent = "Event_Water_Bucket"; Vector3 pos = m_feedbackCamera.camera.ScreenToWorldPoint( new Vector3( p_gesture.position.x, p_gesture.position.y, 2 )); m_successBurst.transform.position=pos; m_successParticle.Play(); } else { strEventType = "Type_From_Inventory"; strEvent = "Event_Outcome_Blast"; } break; case StatsManager.MODE_ACT1: if( TouchObject != null && TouchObject.transform.name.Contains("Floor") ) { strEventType = "Type_Touch"; strEvent = "Event_Tap"; } break; case StatsManager.MODE_NORMAL: strEventType = "Type_Touch"; strEvent = "Event_Tap"; break; } } } #endregion #region Gesture Move else if( p_gesture.type == GestureManager.GestureType.Move ) { strEvent = "Event_Move"; strEventType = "Type_Touch"; if( StatsManager.Instance.DragonState == "Rubbing" && this.IsInteractible() ) { bool bIsRubbingTrigger = true; if(TouchObject != null) { if( m_rubbingDirection == m_rubbingTargetDirection ) { switch( StatsManager.Instance.DragonMode ) { case StatsManager.MODE_ACT1: case StatsManager.MODE_NORMAL: switch(TouchObject.name) { case "RubTopCollider": m_rubbingObjectIndex.Enqueue(new Vector2(0,1)); break; case "RubBottomCollider": m_rubbingObjectIndex.Enqueue(new Vector2(0,-1)); break; case "RubLeftCollider": m_rubbingObjectIndex.Enqueue(new Vector2(-1,0)); break; case "RubRightCollider": m_rubbingObjectIndex.Enqueue(new Vector2(1,0)); break; default : m_rubbingObjectIndex.Enqueue(new Vector2(0,0)); bIsRubbingTrigger = false; break; } break; case StatsManager.MODE_DRAGONSALVE: switch(TouchObject.name) { case "LeftCollider": m_rubbingObjectIndex.Enqueue(new Vector2(-1,0)); break; case "RightCollider": m_rubbingObjectIndex.Enqueue(new Vector2(1,0)); break; default : m_rubbingObjectIndex.Enqueue(new Vector2(0,0)); bIsRubbingTrigger = false; break; } break; case StatsManager.MODE_BATH: switch(TouchObject.name) { case "LeftCollider": if( p_gesture.hit.point.x > 0.5f ) m_rubbingObjectIndex.Enqueue(new Vector2(-1,0)); else m_rubbingObjectIndex.Enqueue(new Vector2(-1,1)); if( p_gesture.hit.point.x < 0.7f ) DentalParticles.Instance.Apply( p_gesture.hit.point, TouchObject.transform, 0.1f, 0.2f ); break; case "RightCollider": if( p_gesture.hit.point.x < 0.5f ) m_rubbingObjectIndex.Enqueue(new Vector2(1,0)); else m_rubbingObjectIndex.Enqueue(new Vector2(1,1)); if( p_gesture.hit.point.x < 0.27f ) DentalParticles.Instance.Apply( p_gesture.hit.point, TouchObject.transform, 0.1f, 0.2f ); break; default : m_rubbingObjectIndex.Enqueue(new Vector2(0,0)); bIsRubbingTrigger = false; break; } break; case StatsManager.MODE_DENTALKIT: switch(TouchObject.name) { case "Teeth": DentalParticles.Instance.Apply( p_gesture.hit.point, TouchObject.transform, 0.01f, 0.02f ); break; } break; } while(m_rubbingObjectIndex.Count>5) { m_rubbingObjectIndex.Dequeue(); } Vector2 sum = Vector2.zero; foreach( Vector2 index in m_rubbingObjectIndex ) { sum += index; } sum.x = sum.x / m_rubbingObjectIndex.Count; sum.y = sum.y / m_rubbingObjectIndex.Count; m_rubbingTargetDirection = sum.normalized; UpdateRubbingPosition(0.5f); } } else { if(m_rubbingTargetDirection != Vector2.zero) { m_rubbingObjectIndex.Clear(); m_rubbingTargetDirection = Vector2.zero; UpdateRubbingPosition(0.5f); } bIsRubbingTrigger = false; } Vector3 tempCenterPos = Camera.main.ScreenToViewportPoint(new Vector3(p_gesture.position.x, p_gesture.position.y, 0)); const float CENTER_VIEWPORT = 0.50f; const float TEMP_THRESHOLD = 0.25f; /* * Immediate fix to center the rubbing position * Also to make the "RUBBING PARTICLE" centered if( ( CENTER_VIEWPORT + TEMP_THRESHOLD ) >= tempCenterPos.x && ( CENTER_VIEWPORT - TEMP_THRESHOLD ) <= tempCenterPos.x && ( CENTER_VIEWPORT + TEMP_THRESHOLD ) >= tempCenterPos.y && ( CENTER_VIEWPORT - TEMP_THRESHOLD ) <= tempCenterPos.y )*/ if ( bIsRubbingTrigger ) { m_eventTimer.RestartScheduler(); m_eventTimer.PauseScheduler(); m_sprint9Demo.PauseScheduler(); if (m_lastTouchOBject == null || ( TouchObject != null && m_lastTouchOBject != TouchObject ) ) { m_lastTouchOBject = TouchObject; m_rubMeter.UpdatePosition(m_lastTouchOBject.transform.position); } m_rubMeter.Enable(); if(m_curRubLength <= 250.0f) { m_curRubLength += p_gesture.velocity; if( Utility.RANDOM_INT(0,100) < 10 && m_curRubLength <= 200 ) { // +KJ:08022013 // TODO: Adjust this one and encode all at the tables // NOTE: Put all the triggers on the States listed below. // The poses under rubbing state are: // 1) Pose_PettingHead // 2) Pose_DragonSalve // 3) Pose_ToothBrush // 4) Pose_SoapAndBrush #region Dragon Poses if( StatsManager.Instance.DragonPose == "Pose_PettingHead" ) { } else if( StatsManager.Instance.DragonPose == "Pose_DragonSalve" ) { } else if( StatsManager.Instance.DragonPose == "Pose_DentalKit" ) { } else if( StatsManager.Instance.DragonPose == "Pose_Bath" ) { } #endregion } } else { float completionPercentage = ((float)StatsManager.Instance.CurrentRubCount / (float)StatsManager.Instance.MaxRubCount); completionPercentage = Mathf.Clamp01(completionPercentage); if( StatsManager.Instance.DragonMode == StatsManager.MODE_DENTALKIT ) { Color headColor = m_head.renderer.materials[1].color; Color tongueColor = m_tongue.renderer.materials[1].color; float alphaValue = 1.0f - completionPercentage; headColor.a = alphaValue; tongueColor.a = alphaValue; m_head.renderer.materials[1].color = headColor; m_tongue.renderer.materials[1].color = tongueColor; } m_rubMeter.UpdateCompletion(completionPercentage); m_curRubLength = 0.0f; StatsManager.Instance.UpdateRubCount(); // + LA 091013: This is where we'll put reaction after the rubbing phase if( StatsManager.Instance.CurrentRubCount > StatsManager.Instance.MaxRubCount ) { if( StatsManager.Instance.DragonPose == "Pose_PettingHead" ) { // + LA 091013: This is to be replaced with a new reaction // NOTE: This has two variations // 1) Normal Pet Done (When the petting is completed in the parts other than the lower neck) // 2) Play dead like action (When the petting is completed in the lower neck) // - LA for(int i = 0; i<m_rubbingColliders.Count; i++) m_rubbingColliders[i].SetActive(false); bool bIsSweetSpotHit = false; if( m_rubbingDirection.x > 0f && m_rubbingDirection.y >= 0f) bIsSweetSpotHit = true; m_rubbingTargetDirection = Vector2.zero; UpdateRubbingPosition(0.3f); if( TutorialController.GTutState == TutorialController.ETutorialState.Petting ) { this.Reaction("Type_Petting", "Event_Petting_Done"); } else { if(bIsSweetSpotHit) this.Reaction("Type_Petting", "Event_Petting_Done_Sweet_Spot"); else this.Reaction("Type_Petting", "Event_Petting_Done"); } PettingMain.Instance.ShowUI("InventoryPanel"); PettingMain.Instance.ShowUI("MainUI"); } else if( StatsManager.Instance.DragonPose == "Pose_DragonSalve" ) { this.Reaction("Type_Rubbing", "Event_Dragon_Salve_Done"); // aries:10182013 done dragon salve. PettingMain.Instance.ShowUI("InventoryPanel"); PettingMain.Instance.ShowUI("MainUI"); } else if( StatsManager.Instance.DragonPose == "Pose_DentalKit" ) { this.Reaction( "Type_Rubbing", "Event_Dental_Kit_Done" ); this.SetMouthCollidersActive( false ); DentalParticles.Instance.Reset(); PettingMain.Instance.ShowUI("InventoryPanel"); PettingMain.Instance.ShowUI("MainUI"); } else if( StatsManager.Instance.DragonPose == "Pose_Bath" ) { Debug.Log( "Done" ); this.Reaction("Type_Rubbing", "Event_Bath_Done"); DentalParticles.Instance.Reset(); PettingMain.Instance.ShowUI("InventoryPanel"); PettingMain.Instance.ShowUI("MainUI"); } StatsManager.Instance.ResetRubCount(); } } return; } else { m_rubMeter.Disable(); } } } #endregion #region Gesture SwipeUp else if( p_gesture.type == GestureManager.GestureType.Swipe && p_gesture.direction == FingerGestures.SwipeDirection.Up && _isSwipeValid ) { strEvent = "Event_SwipeUp"; strEventType = "Type_Touch"; bSatisfiedGesture = false; } #endregion #region Gesture SwipeDown else if( p_gesture.type == GestureManager.GestureType.Swipe && p_gesture.direction == FingerGestures.SwipeDirection.Down && _isSwipeValid) { strEvent = "Event_SwipeDown"; strEventType = "Type_Touch"; //bSatisfiedGesture = false; } #endregion #region Gesture SwipeLeft else if( p_gesture.type == GestureManager.GestureType.Swipe && p_gesture.direction == FingerGestures.SwipeDirection.Left && _isSwipeValid) { strEvent = "Event_SwipeLeft"; strEventType = "Type_Touch"; //bSatisfiedGesture = false; } #endregion #region Gesture SwipeRight else if( p_gesture.type == GestureManager.GestureType.Swipe && p_gesture.direction == FingerGestures.SwipeDirection.Right && _isSwipeValid) { strEvent = "Event_SwipeRight"; strEventType = "Type_Touch"; //bSatisfiedGesture = false; } #endregion #region Gesture Swipe else if( p_gesture.type == GestureManager.GestureType.Swipe ) { strEvent = "Event_Swipe"; strEventType = "Type_Touch"; bSatisfiedGesture = false; } #endregion #region Gesture Hold else if( p_gesture.type == GestureManager.GestureType.Hold ) { strEvent = "Event_Hold"; strEventType = "Type_Touch"; switch( StatsManager.Instance.DragonMode ) { case StatsManager.MODE_NORMAL: break; case StatsManager.MODE_IUC: if( !JawCruncher.IsThrownJC() ) { StatsManager.Instance.touchPosition = p_gesture.position; m_fastSwipeCounter = 0.0f; //m_holdParticle.gameObject.GetComponent<FollowComponent>().SeekPoint(p_gesture.position); //m_holdParticle.gameObject.GetComponent<FollowComponent>().lerpSpeed = 1.0f; //m_holdParticle.Play(); JawCruncher.EnableFollowFingerJC(); } break; case StatsManager.MODE_DRAGONSALVE: break; } } #endregion #region Gesture Hold_Move else if( p_gesture.type == GestureManager.GestureType.Hold_Move ) { strEvent = "Event_Hold_Move"; strEventType = "Type_Touch"; switch( StatsManager.Instance.DragonMode ) { case StatsManager.MODE_NORMAL: break; case StatsManager.MODE_IUC: if( !JawCruncher.IsThrownJC() ) { StatsManager.Instance.touchPosition = p_gesture.position; JawCruncher.EnableFollowFingerJC(); } break; case StatsManager.MODE_DRAGONSALVE: break; } } #endregion #region Gesture Hold_Move_Fast else if( p_gesture.type == GestureManager.GestureType.Hold_Move_Fast ) { strEvent = "Event_Hold_Move_Fast"; strEventType = "Type_Touch"; switch( StatsManager.Instance.DragonMode ) { case StatsManager.MODE_NORMAL: break; case StatsManager.MODE_IUC: if( !JawCruncher.IsThrownJC() ) { StatsManager.Instance.touchPosition = p_gesture.position; JawCruncher.EnableFollowFingerJC(); } break; case StatsManager.MODE_DRAGONSALVE: break; } } #endregion #region Gesture Hold_Up else if( p_gesture.type == GestureManager.GestureType.Hold_Up ) { // strEvent = "Event_Hold_Up"; // strEventType = "Type_Touch"; switch( StatsManager.Instance.DragonMode ) { case StatsManager.MODE_NORMAL: break; case StatsManager.MODE_IUC: strEvent = "Event_Hold_Up"; strEventType = "Type_Touch"; if( !JawCruncher.IsThrownJC() ) { StatsManager.Instance.touchPosition = p_gesture.position; JawCruncher.DisableFollowFingerJC(); JawCruncher.DropJC(); m_fastSwipeCounter = 0.0f; } break; case StatsManager.MODE_DRAGONSALVE: break; case StatsManager.MODE_DENTALKIT: //m_soapParticle.SetActive( false ); break; case StatsManager.MODE_ACT1: if( CarePlayNFController.GetPetAnimController().IsCurAnimStateOnSub( ERigType.Body, "TouchMoment", "TouchMomentWaitingIdle" ) ) { strEvent = "Event_Hold_Up"; strEventType = "Type_Touch"; } if( CarePlayNFController.GetPetAnimController().IsCurAnimStateOnSub( ERigType.Body, "TouchMoment", "TouchMomentToMidground" ) ) { float currentAnimTime = CarePlayNFController.GetPetAnimController().GetCurAnimNormTime( ERigType.Body ); if( currentAnimTime <= 0.4f ) { strEvent = "Event_Hold_Up"; strEventType = "Type_Touch"; } } break; } bSatisfiedGesture = false; } #endregion #region Gesture Hold_Swipe else if( p_gesture.type == GestureManager.GestureType.Hold_Swipe ) { strEvent = "Event_Hold_Swipe"; strEventType = "Type_Touch"; switch( StatsManager.Instance.DragonMode ) { case StatsManager.MODE_NORMAL: break; case StatsManager.MODE_IUC: if( !JawCruncher.IsThrownJC() ) { StatsManager.Instance.touchPosition = p_gesture.position; JawCruncher.ThrowJC(p_gesture.screenHead, p_gesture.screenTail, p_gesture.velocity); } break; case StatsManager.MODE_DRAGONSALVE: break; } } #endregion #region Gesture Hold_Fake_Swipe else if( p_gesture.type == GestureManager.GestureType.Hold_Fake_Swipe ) { strEvent = "Event_Hold_Fake_Swipe"; strEventType = "Type_Touch"; switch( StatsManager.Instance.DragonMode ) { case StatsManager.MODE_NORMAL: break; case StatsManager.MODE_IUC: if( !JawCruncher.IsThrownJC() ) { GestureManager.SwipeWorldPos( p_gesture.screenHead, p_gesture.screenTail ); StatsManager.Instance.touchPosition = p_gesture.position; JawCruncher.EnableFollowFingerJC(); } break; case StatsManager.MODE_DRAGONSALVE: break; } bSatisfiedGesture = false; } #endregion else { m_holdParticle.Stop(); } // + LA 103013: This is for any triggered reaction switch( StatsManager.Instance.DragonMode ) { case StatsManager.MODE_ACT1: if( StatsManager.Instance.DragonState == "Coming_Down" ) { strEventType = "Type_Touch"; strEvent = "Event_AnyInteraction"; } if( StatsManager.Instance.DragonState == "TouchMoment_Foreground" ) { Debug.Log ( "Event: " + strEvent ); if( strEvent != "Event_Hold" && strEvent != "Event_Down" && strEvent != "Event_Up" && strEvent != "Event_Move" ) { strEventType = "Type_Touch"; strEvent = "Event_AnyInteraction"; } } break; } if(p_gesture.type != GestureManager.GestureType.Move) { m_curRubLength = 0.0f; } StatsManager.Instance.currentEventType = strEventType; StatsManager.Instance.currentEvent = strEvent; // trigger gestures for Tutorial if( !TutorialDialogueController.Instance.TriggerGesture(strEvent) ) { D.Log("Tutorial is Active:"+TutorialDialogueController.Instance.IsActive+" Cannot Play Action with Event:"+strEvent+" \n"); return; } // block gestures. for Tutorial if( !TutorialController.Instance.IsValidGestureForTutorial( strEventType, strEvent, p_gesture ) ) { D.Log("Dragon::Trigger Gesture:"+strEvent+" is not valid during TutorialState:"+TutorialController.GTutState+" \n"); return; } // trigger gestures this.GestureReaction(strEventType, strEvent, p_gesture); m_delegate.CheckInventoryEvents( strEventType, strEvent, StatsManager.Instance.DragonTouchPart ); }
private void GestureEnablingMethod ( GestureObject p_gesture, List<List<string>> p_events ) { if( p_gesture == null ) return; if( p_events != m_gestures ) return; // Sanity checking if the state is not interactible if( !this.IsInteractible() ) return; // Sanity Checking for Water Splash Animations to avoid spam actions on Water Bucket if( StatsManager.Instance.currentReaction == "Dragon_Splash_Upward" || StatsManager.Instance.currentReaction == "Dragon_Splash_Front" || StatsManager.Instance.currentReaction == "Dragon_Splash_Front_To_Fetching" || StatsManager.Instance.currentReaction == "Dragon_Splash_Front_To_Feeding" || StatsManager.Instance.currentReaction == "Dragon_Splash_To_Dragon_Salve" ){ return; } if( ( p_gesture.type == GestureManager.GestureType.Swipe || ( p_gesture.type == GestureManager.GestureType.Tap && p_gesture.tapCount == 2 ) ) ){ //PettingMain.Instance.AnimateSuccessAnimation(); Vector3 pos = m_feedbackCamera.camera.ScreenToWorldPoint( new Vector3(m_endPoint.x,m_endPoint.y,2)); m_successBurst.transform.position=pos; m_successParticle.Play(); m_doubleTapParticle.GetComponent<FollowComponent>().Point(m_endPoint); m_doubleTapParticle.Play(); } }
/** Reaction ********************************************/ public bool GestureReaction ( string p_eventType, string p_event, GestureObject p_gesture ) { if( p_eventType == "" || p_event == "" ) return false; #if UNITY_EDITOR ETestActionOverride retVal = (ETestActionOverride)OverrideReaction(m_debugOverrideActionSequence); if(retVal != ETestActionOverride.CONTINUE) return retVal == ETestActionOverride.TRUE; #endif List<string> evts = new List<string>(); evts.Add(p_eventType); evts.Add(p_event); // test & special case for FakeSwipe if( p_eventType == "Type_Touch" && p_event == "Event_Hold_Fake_Swipe" ){ List<List<string>> tempGestureEvt = new List<List<string>>(); tempGestureEvt.Add(evts); if( this.ProcessReactions(tempGestureEvt) ) { bSatisfiedGesture = true; this.GestureEnablingMethod(p_gesture, m_gestures); } return true; } m_gestures.Add(evts); m_triggeredGesture = p_gesture; return true; }
public static void BurstForBoomAndFish( GestureObject p_gesture ) { Vector3 pos = m_feedbackCamera.camera.ScreenToWorldPoint( new Vector3( p_gesture.position.x, p_gesture.position.y, 2 )); m_successBurst.transform.position=pos; m_successParticle.Play(); }
private void EndCapture() { _capturingGestures = false; _listenerObject.ReceiveGesture(AnalyzeGesture()); _listenerObject = null; }
private void CancelCapture() { _listenerObject = null; _capturingGestures = false; }