cueselocks

CharacterStateMachine.cs

Nov 2nd, 2024 (edited)
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.65 KB | None | 0 0
  1. public class CharacterStateMachine : StateMachine<Character, CharacterState>
  2. {
  3.     public CharacterStateMachine(Character context) : base(context) { }
  4.  
  5.     public CharacterState IdlingState { get; private set; }
  6.     public CharacterState WalkingState { get; private set; }
  7.     public CharacterState RunningState { get; private set; }
  8.     public CharacterState JumpingState { get; private set; }
  9.     public CharacterState FallingState { get; private set; }
  10.  
  11.     public override void Awake()
  12.     {
  13.         base.Awake();
  14.  
  15.         IdlingState = new IdlingCharacterState(Context);
  16.         WalkingState = new WalkingCharacterState(Context);
  17.         RunningState = new RunningCharacterState(Context);
  18.         JumpingState = new JumpingCharacterState(Context);
  19.         FallingState = new FallingCharacterState(Context);
  20.     }
  21.  
  22.     public override void Start()
  23.     {
  24.         base.Start();
  25.  
  26.         SwitchState(IdlingState);
  27.     }
  28.  
  29.     public override void FixedUpdate()
  30.     {
  31.         base.FixedUpdate();
  32.  
  33.         if (Context.IsGrounded())
  34.         {
  35.             if (Context.JumpCallbackContext > 0f)
  36.             {
  37.                 SwitchState(JumpingState);
  38.             }
  39.             else
  40.             {
  41.                 SwitchState(IdlingState);
  42.             }
  43.         }
  44.         else
  45.         {
  46.             SwitchState(FallingState);
  47.         }
  48.  
  49.         if (Context.WalkCallbackContext.magnitude != 0f)
  50.         {
  51.             if (Context.RunCallbackContext > 0f)
  52.             {
  53.                 SwitchState(RunningState);
  54.             }
  55.             else
  56.             {
  57.                 SwitchState(WalkingState);
  58.             }
  59.         }
  60.     }
  61. }
  62.  
Advertisement
Add Comment
Please, Sign In to add comment