public void CopySnapshot(ref IKSnapshot to, IKSnapshot from) { to.lh = from.lh; to.rh = from.rh; to.lf = from.lf; to.rf = from.rf; }
public void CreatePositions(Vector3 origin, Vector3 moveDir, bool isMid) { delta = Time.deltaTime; HandleAnim(moveDir, isMid); if (!isMid) { UpdateGoals(moveDir); prevMovDir = moveDir; } else { UpdateGoals(prevMovDir); } IKSnapshot ik = CreateSnapShot(origin); CopySnapshot(ref current, ik); SetIKPosition(isMid, goals.lh, current.lh, AvatarIKGoal.LeftHand); SetIKPosition(isMid, goals.rh, current.rh, AvatarIKGoal.RightHand); SetIKPosition(isMid, goals.lf, current.lf, AvatarIKGoal.LeftFoot); SetIKPosition(isMid, goals.rf, current.rf, AvatarIKGoal.RightFoot); UpdateIKWeight(AvatarIKGoal.LeftHand, 1); UpdateIKWeight(AvatarIKGoal.RightHand, 1); UpdateIKWeight(AvatarIKGoal.LeftFoot, 1); UpdateIKWeight(AvatarIKGoal.RightFoot, 1); }
public IKSnapshot CreateSnapShot(Vector3 origin) { 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); Vector3 _lf = LocalToWorld(ikBase.lf); r.lf = GetPosActual(_lf, AvatarIKGoal.LeftFoot); 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; this.helper = helper; }