Advertisement
MaximilianPs

Game Creator 2 - Character Controller

May 21st, 2024 (edited)
751
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.38 KB | Gaming | 0 0
  1. using System.Threading.Tasks;
  2. using UnityEngine;
  3. using GameCreator.Runtime.Common;
  4. using GameCreator.Runtime.Characters;
  5. using BrokenWings.Player;
  6. using BrokenWings.Character.StateMachine;
  7. using System.Collections.Generic;
  8.  
  9.  [System.Serializable]
  10.  public class CharacterState
  11.  {
  12.      [SerializeField] private StateData m_State = new StateData(StateData.StateType.State);
  13.      [SerializeField] private PropertyGetInteger m_Layer = new PropertyGetInteger(1);
  14.      [SerializeField] private BlendMode m_BlendMode = BlendMode.Blend;
  15.  
  16.      private float m_Delay = 0f;
  17.      private float m_Speed = 1f;
  18.      private float m_Weight = 1f;
  19.      private float m_Transition = 0.1f;
  20.  
  21.      public PropertyGetGameObject m_Character;
  22.      private Task DefaultResult;
  23.  
  24.      public Task RunStateAnimation(GameCreator.Runtime.Characters.Character character)
  25.      {
  26.          Args args = character.Args;
  27.          if (character == null) return DefaultResult;
  28.          if (!this.m_State.IsValid(character)) return DefaultResult;
  29.  
  30.          ConfigState configuration = new ConfigState(
  31.              this.m_Delay, this.m_Speed, this.m_Weight,
  32.              this.m_Transition, 0f
  33.          );
  34.  
  35.          int layer = (int)this.m_Layer.Get(args);
  36.          _ = character.States.SetState(
  37.              this.m_State, layer,
  38.              this.m_BlendMode, configuration
  39.          );
  40.  
  41.          return DefaultResult;
  42.      }
  43.  }
  44.  
  45.  public class GCPlayerController : MonoBehaviour
  46.  {
  47.      private BWSystemInputs input;
  48.      public BWSystemInputs Input { get; set; }
  49.    
  50.      private GameCreator.Runtime.Characters.Character character;
  51.      
  52.      public List<CharacterState> characterStates = new List<CharacterState>();
  53.  
  54.      private bool walk = true;
  55.      private bool run = false;
  56.  
  57.      void Start()
  58.      {
  59.          input = GetComponent<BWSystemInputs>();
  60.         // SetState(new IdleState(this));
  61.  
  62.          character = GetComponent<GameCreator.Runtime.Characters.Character>();
  63.      }
  64.  
  65.      void Update()
  66.      {
  67.          if(input.Sprint && run == false)
  68.          {
  69.              run = true;
  70.              walk = false;
  71.              characterStates[1].RunStateAnimation(character);
  72.          }
  73.          
  74.          if(!input.Sprint && walk == false)
  75.          {
  76.              run = false;
  77.              walk = true;
  78.              characterStates[0].RunStateAnimation(character);
  79.          }
  80.      }
  81.   }
  82. }
  83.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement