private void OnSetState(SwimState state) { if (state == SwimState.Dive) { PlayerAudioModule.Get().PlayBeforeDivingSound(); this.UpdateAudioMixer(true); GreenHellGame.Instance.SetSnapshot(AudioMixerSnapshotGame.Underwater, 0.5f); return; } if (state == SwimState.Swim) { this.UpdateAudioMixer(false); GreenHellGame.Instance.SetSnapshot(AudioMixerSnapshotGame.Default, 0.5f); PlayerAudioModule.Get().PlayAfterDivingSound(); } }
private void SetState(SwimState state) { this.m_State = state; this.m_StateChangedTime = Time.time; this.OnSetState(state); }
private void ConstructFSM() { /* * //Get the list of points * pointList = GameObject.FindGameObjectsWithTag("WandarPoint"); * * Transform[] waypoints = new Transform[pointList.Length]; * int i = 0; * foreach(GameObject obj in pointList) * { * waypoints[i] = obj.transform; * i++; * } * * PatrolState patrol = new PatrolState(waypoints); * * patrol.AddTransition(Transition.SawPlayer, FSMStateID.Chasing); * patrol.AddTransition(Transition.NoHealth, FSMStateID.Dead); */ /* ChaseState chase = new ChaseState(waypoints); * chase.AddTransition(Transition.LostPlayer, FSMStateID.Patrolling); * chase.AddTransition(Transition.ReachPlayer, FSMStateID.Attacking); * chase.AddTransition(Transition.NoHealth, FSMStateID.Dead); * * AttackState attack = new AttackState(waypoints); * attack.AddTransition(Transition.LostPlayer, FSMStateID.Patrolling); * attack.AddTransition(Transition.SawPlayer, FSMStateID.Chasing); * attack.AddTransition(Transition.NoHealth, FSMStateID.Dead); * */ // AddFSMState(patrol); /* AddFSMState(chase); * AddFSMState(attack); * AddFSMState(dead);*/ SwimState swim = new SwimState(); SawObstacleState sawObstacle = new SawObstacleState(); TurningAwayState turningAway = new TurningAwayState(); JumpState jump = new JumpState(); JumpingUnderWaterState jumpingUnderWater = new JumpingUnderWaterState(); JumpingAboveWaterState jumpingAboveWater = new JumpingAboveWaterState(); BumpState bump = new BumpState(); FallingState falling = new FallingState(); HitWaterState hitWater = new HitWaterState(); DeadState dead = new DeadState(); AddFSMState(swim); AddFSMState(sawObstacle); AddFSMState(turningAway); AddFSMState(jump); AddFSMState(jumpingUnderWater); AddFSMState(jumpingAboveWater); AddFSMState(falling); AddFSMState(hitWater); AddFSMState(bump); AddFSMState(dead); swim.AddTransition(Transition.Tapped, FSMStateID.Jump); swim.AddTransition(Transition.BumpedIntoSomething, FSMStateID.Bump); swim.AddTransition(Transition.SawObstacle, FSMStateID.SawObstacle); swim.AddTransition(Transition.SwimmingToTurning, FSMStateID.TurningAway); swim.AddTransition(Transition.GoneBelow, FSMStateID.Dead); sawObstacle.AddTransition(Transition.FoundClearDirection, FSMStateID.TurningAway); turningAway.AddTransition(Transition.TurnIsComplete, FSMStateID.Swimming); jump.AddTransition(Transition.HasJumped, FSMStateID.JumpingUnderWater); jumpingUnderWater.AddTransition(Transition.AboveWater, FSMStateID.JumpingAboveWater); jumpingUnderWater.AddTransition(Transition.ReturnToSwimming, FSMStateID.Swimming); jumpingAboveWater.AddTransition(Transition.ReachedApex, FSMStateID.Falling); falling.AddTransition(Transition.AtSurface, FSMStateID.HitWater); hitWater.AddTransition(Transition.UnderWater, FSMStateID.JumpingUnderWater); bump.AddTransition(Transition.HasBumped, FSMStateID.JumpingUnderWater); dead.AddTransition(Transition.NoHealth, FSMStateID.Dead); dead.AddTransition(Transition.Z, FSMStateID.Swimming); //falling.AddTransition(Transition.GoneBelow, FSMStateID.Dead); }