private void Awake()
        {
            //Get Movement Controller.
            warriorMovementController = GetComponent <WarriorMovementControllerFREE>();

            //Add Input and Timing Controllers.
            warriorInputController          = gameObject.AddComponent <WarriorInputControllerFREE>();
            warriorTiming                   = gameObject.AddComponent <WarriorTimingFREE>();
            warriorTiming.warriorController = this;

            //Add IKHands.
            ikHands = GetComponent <IKHands>();

            //Setup Animator, add AnimationEvents script.
            animator = GetComponentInChildren <Animator>();
            if (animator == null)
            {
                Debug.LogError("ERROR: There is no Animator component for character.");
                Destroy(this);
            }
            else
            {
                animator.gameObject.AddComponent <WarriorCharacterAnimatorEvents>();
                animator.GetComponent <WarriorCharacterAnimatorEvents>().warriorController = this;
                animator.gameObject.AddComponent <AnimatorParentMove>();
                animator.GetComponent <AnimatorParentMove>().anim = animator;
                animator.GetComponent <AnimatorParentMove>().warriorMovementController = warriorMovementController;
                animator.updateMode  = AnimatorUpdateMode.AnimatePhysics;
                animator.cullingMode = AnimatorCullingMode.CullUpdateTransforms;
            }

            leftHandTrans = transform.Find("ArrowSpawn");
        }