public void CreatePosition(Vector3 origin, Vector3 moveDir, bool isMid)
        {
            delta = Time.deltaTime;
            HandleAnim(moveDir, isMid);

            //if (!isMid)
            //{
            //    UpdateGoals(moveDir);
            //    prevMoveDir = moveDir;
            //}
            //else {
            //    UpdateGoals(prevMoveDir);
            //}
            UpdateGoals(moveDir);
            prevMoveDir = moveDir;


            IKSnapshot ik = CreateSnapShot(origin);

            CopySnapshot(ref current, ik);

            SetIKPosition(isMid, goals.lf, current.lf, AvatarIKGoal.LeftFoot);
            SetIKPosition(isMid, goals.lh, current.lh, AvatarIKGoal.LeftHand);
            SetIKPosition(isMid, goals.rf, current.rf, AvatarIKGoal.RightFoot);
            SetIKPosition(isMid, goals.rh, current.rh, AvatarIKGoal.RightHand);

            UpdateIKWeight(AvatarIKGoal.LeftFoot, 1);
            UpdateIKWeight(AvatarIKGoal.LeftHand, 1);
            UpdateIKWeight(AvatarIKGoal.RightFoot, 1);
            UpdateIKWeight(AvatarIKGoal.RightHand, 1);
        }
 public void CopySnapshot(ref IKSnapshot to, IKSnapshot from)
 {
     to.rh = from.rh;
     to.lh = from.lh;
     to.rf = from.rf;
     to.lf = from.lf;
 }
        public IKSnapshot CreateSnapShot(Vector3 o)
        {
            IKSnapshot r = new IKSnapshot();

            Vector3 _lh = localToWorld(ikBase.lh);

            r.lh = GetPosActual(_lh, AvatarIKGoal.LeftHand);

            Vector3 _rh = localToWorld(ikBase.rh);

            r.rh = GetPosActual(_rh, AvatarIKGoal.RightHand);
            //r.rh = localToWorld(ikBase.rh);

            Vector3 _lf = localToWorld(ikBase.lf);

            r.lf = GetPosActual(_lf, AvatarIKGoal.LeftFoot);
            //r.lf = localToWorld(ikBase.lf);

            Vector3 _rf = localToWorld(ikBase.rf);

            r.rf = GetPosActual(_rf, AvatarIKGoal.RightFoot);
            return(r);
        }
 public void Init(FreeClimb c, Transform helper)
 {
     anim   = c.anim;
     ikBase = c.baseIKSnapshot;
     h      = helper;
 }