/// <summary>
        /// On init we grab our components and set them if needed, set our initial direction and run state
        /// </summary>
        protected override void Initialization()
        {
            base.Initialization();
            if (AutoSetup)
            {
                _characterHorizontalMovement.ReadInput = false;
            }

            switch (InitialDirection)
            {
            case InitialDirections.Left:
                _currentDirection = -1f;
                break;

            case InitialDirections.Right:
                _currentDirection = 1f;
                break;

            case InitialDirections.None:
                _currentDirection = 0f;
                break;
            }

            _characterRun = _character?.FindAbility <CharacterRun>();
            if (_characterRun != null)
            {
                if (AutoSetup)
                {
                    _characterRun.ReadInput = false;
                }
                if (RunningOnStart)
                {
                    _running = true;
                    _characterRun.ForceRun(true);
                }
            }

            _characterWallJump = _character?.FindAbility <CharacterWalljump>();
            if (_characterWallJump != null)
            {
                _characterWallJump.OnWallJump += OnWallJump;
            }

            _drivenInput = InitialInput;
        }
Exemple #2
0
 /// <summary>
 /// Changes the run state (walk > run, run > walk)
 /// </summary>
 public virtual void ToggleRun()
 {
     _running = !_running;
     _characterRun.ForceRun(_running);
 }