public void EnterState(IState oldState, StatePatternBase statePatternBase) { manager = statePatternBase as FishAIStateManager; Vector3 goal; float moveTime; if (manager.fishAI.moveGoal.HasValue) { goal = manager.fishAI.moveGoal.Value; manager.fishAI.moveGoal = null; moveTime = manager.fishAI.moveTime; } else { goal = FishMoveState.GetPlayerFrontPosition(manager); moveTime = 3; } manager.GetTransform().DOMove(goal, moveTime).SetEase(Ease.InOutQuad).OnComplete(_moveDone); manager.GetTransform().DOLookAt((goal - manager.GetTransform().position).normalized, 2); int moveAni = Random.Range((int)FishAIStateManager.FishAni.Move1, (int)FishAIStateManager.FishAni.MoveEnd); manager.WaitToTriggerAnimation((FishAIStateManager.FishAni)moveAni); manager.PlaySound("MovingSound", Random.Range(0.1f, 1.5f)); manager.PlaySound("MovingSound", Random.Range(1.5f, 2.5f)); manager.fishAI.StartShakeFishPosScale(); }
public void EnterState(IState oldState, StatePatternBase statePatternBase) { manager = statePatternBase as FishAIStateManager; manager.WaitToSwitchState(FishAIStateManager.FishState.move, 2); Vector3 goal = FishMoveState.GetPlayerFrontPosition(manager); manager.fishAI.moveGoal = goal; manager.fishAI.moveTime = 1.5f; manager.fishAI.moveDoneState = FishAIStateManager.FishState.angry; int punchAni = Random.Range(0, 3); if (punchAni == 0) { manager.WaitToTriggerAnimation(FishAIStateManager.FishAni.Angry); } else if (punchAni == 1) { manager.WaitToTriggerAnimation(FishAIStateManager.FishAni.WryFace); } else if (punchAni == 2) { manager.WaitToTriggerAnimation(FishAIStateManager.FishAni.Scared); } manager.fishAI.countFishHit++; }
void _moveInDone() { WryFaceTime--; if (WryFaceTime <= 0) { Vector3 goal = FishMoveState.GetPlayerFrontPosition(manager); manager.fishAI.moveGoal = goal; manager.fishAI.moveTime = 3; manager.fishAI.moveDoneState = FishAIStateManager.FishState.idle; manager.WaitToSwitchState(FishAIStateManager.FishState.move); GameManager.Instance.SetHandTouchMode(); GameManager.Instance.ShowHitFishInfo(); manager.fishAI.ResetFishData(); GameManager.Instance.CloseFishHidingDoor(0.0f, false); GameManager.Instance.RecoverFishToDefaultLayer(); return; } manager.WaitToTriggerAnimation(FishAIStateManager.FishAni.Angry); manager.StartCoroutine(_startWryFace()); }