public void StartMachine(Type startState = null)
        {
            if (startState == null)
            {
                startState = Type.GetType(StartingState);
            }

            startingStateDriver = StateDriver.For(startState);
            startingStateDriver.StartMachine(this);
        }
        //-------------------------------------------------------------------------
        // Helper Methods
        //-------------------------------------------------------------------------

        /// <summary>
        /// Get the state driver for the current state.
        /// </summary>
        /// <param name="pose">The pose clip.</param>
        /// <returns>The state driver for the current state.</returns>
        private StateDriver GetDriver(PoseInfo pose)
        {
            if (pose == null || pose.State == null)
            {
                return(null);
            }

            if (!stateDrivers.ContainsKey(pose.State))
            {
                stateDrivers.Add(pose.State, StateDriver.For(pose.State));
            }
            return(stateDrivers[pose.State]);
        }
Пример #3
0
 /// <summary>
 /// Constructor.
 /// </summary>
 /// <param name="player">The player character.</param>
 public PlayerSnapshot(PlayerCharacter player)
 {
     if (player != null)
     {
         driver         = StateDriver.For(player.FSM.CurrentState);
         position       = player.transform.position;
         rotation       = player.transform.eulerAngles;
         scale          = player.transform.localScale;
         facing         = player.Facing;
         active         = player.gameObject.activeSelf;
         sprite         = player.Sprite.sprite;
         colliderSize   = player.Collider.size;
         colliderOffset = player.Collider.offset;
     }
 }
        //-------------------------------------------------------------------------
        // Auto Node API
        //-------------------------------------------------------------------------
        public override void Handle(GraphEngine graphEngine)
        {
            if (State != null)
            {
                Type t = Type.GetType(State);

                if (t != null)
                {
                    StateDriver driver = StateDriver.For(State);
                    if (!driver.IsInState(GameManager.Player.FSM))
                    {
                        driver.ForceStateChangeOn(player.FSM);
                    }
                }
            }
        }