private void SetMove(DirectionType direction, ClimbType climbType)
        {
            if ((CurrentMove.Direction == direction) && (CurrentMove.Climb == climbType))
            {
                return;
            }

            Vector3 tempVector = PreviousVector;

            PreviousVector = CurrentVector;
            CurrentVector  = ConvertForClimbing(Direction.ConvertDirectionToVector(direction, tempVector));
            PreviousMove   = CurrentMove;
            CurrentMove    = new ClimbMove(direction, climbType);
            UpdateAnimation(climbType);
        }
        // Use this for initialization
        void Start()
        {
            GameObject playerCharacter = GameObject.FindWithTag("PlayerCharacter") as GameObject;

            if (null != playerCharacter)
            {
                _anim = playerCharacter.GetComponent <Animator>();
            }
            if (null != playerCharacter)
            {
                _movementTransitionManagerScript = playerCharacter.GetComponent <MovementTransitionManager>();
            }
            if (null != playerCharacter)
            {
                _rigidBody = playerCharacter.GetComponent <Rigidbody>();
            }
            GameObject climbPad = GameObject.FindWithTag("ClimbPad") as GameObject;

            if (null != climbPad)
            {
                _climbPadScript = climbPad.GetComponent <ClimbPad>();
            }
            if (null != climbPad)
            {
                _keyboardScript = climbPad.GetComponent <Keyboard>();
            }
            _climbingPanel = GameObject.FindWithTag("ClimbingPanel") as GameObject;

            if (null == _anim)
            {
                Debug.LogError("ClimbMovementModule.Start: _anim is null.");
            }
            if (null == _movementTransitionManagerScript)
            {
                Debug.LogError("ClimbMovementModule.Start: _movementTransitionManagerScript is null.");
            }
            if (null == _rigidBody)
            {
                Debug.LogError("ClimbMovementModule.Start: _rigidBody is null.");
            }
            if (null == _climbPadScript)
            {
                Debug.LogError("ClimbMovementModule.Start: _climbPadScript is null.");
            }
            if (null == _climbingPanel)
            {
                Debug.LogError("ClimbMovementModule.Start: _climbingPanel is null.");
            }
            if (null == _keyboardScript)
            {
                Debug.LogError("ClimbMovementModule.Start: _keyboardScript is null.");
            }

            if (null == _anim)
            {
                return;
            }
            if (null == _movementTransitionManagerScript)
            {
                return;
            }
            if (null == _rigidBody)
            {
                return;
            }
            if (null == _climbPadScript)
            {
                return;
            }
            if (null == _climbingPanel)
            {
                return;
            }
            if (null == _keyboardScript)
            {
                return;
            }

            CurrentMove    = new ClimbMove(DirectionType.None, ClimbType.None);
            CurrentVector  = ConvertForClimbing(Direction.ConvertDirectionToVector(DirectionType.None, Vector3.zero));
            PreviousMove   = new ClimbMove(DirectionType.None, ClimbType.None);
            PreviousVector = ConvertForClimbing(Direction.ConvertDirectionToVector(DirectionType.None, Vector3.zero));
            Speed          = 0.0f;
            _moduleActive  = false;
            _movementTransitionManagerScript.Register(this);
            _climbPadScript.HideClimbingUI();
        }