Ejemplo n.º 1
0
        private void SetFootIK(GrounderQuadruped.Foot foot, float maxOffset)
        {
            Vector3 vector = foot.leg.IKPosition - foot.transform.position;

            foot.solver.IKPosition       = foot.transform.position + Vector3.ClampMagnitude(vector, maxOffset);
            foot.solver.IKPositionWeight = this.weight;
        }
Ejemplo n.º 2
0
 private Transform[] InitiateFeet(IK[] ikComponents, ref GrounderQuadruped.Foot[] f, int indexOffset)
 {
     Transform[] array = new Transform[ikComponents.Length];
     for (int i = 0; i < ikComponents.Length; i++)
     {
         IKSolver.Point[] points = ikComponents[i].GetIKSolver().GetPoints();
         f[i + indexOffset] = new GrounderQuadruped.Foot(ikComponents[i].GetIKSolver(), points[points.Length - 1].transform);
         array[i]           = f[i + indexOffset].transform;
         IKSolver solver = f[i + indexOffset].solver;
         solver.OnPreUpdate = (IKSolver.UpdateDelegate)Delegate.Combine(solver.OnPreUpdate, new IKSolver.UpdateDelegate(this.OnSolverUpdate));
         IKSolver solver2 = f[i + indexOffset].solver;
         solver2.OnPostUpdate = (IKSolver.UpdateDelegate)Delegate.Combine(solver2.OnPostUpdate, new IKSolver.UpdateDelegate(this.OnPostSolverUpdate));
     }
     return(array);
 }