Question by 
               StarShade88 · Nov 17, 2020 at 05:02 PM · 
                c#animationikanimationeventinverse kinematic  
              
 
              Execute code after the animator update but before IK happens.
Hi,
Currently, I am using 2D animation with 2D IK. To make the foot IK, I have to adjust the position of the foot target after the frame of the animation. I have tried LateUpdate. Unfortunately, LateUpdate is called after the IK has been applied... I have already tried many possibilities.
 public class IKAnimationPhysics : MonoBehaviour
 {
     [SerializeField] Transform raycastY = null;
     [SerializeField] Transform[] legs = null;
     [SerializeField] LayerMask IKLayer = new LayerMask();
    
     private void LateUpdate() {
         foreach (Transform leg in legs) {
             RaycastHit2D hit = Physics2D.Raycast(new Vector2(leg.transform.position.x, raycastY.position.y),
                 Vector2.down,
                 Mathf.Infinity,
                 IKLayer);
             if (hit.transform == null) continue;
            
             if(hit.point.y > leg.position.y)
                 leg.position = new Vector2(leg.position.x, hit.point.y);
         }
     }
 
               Thanks in advance for the answers. Mike
               Comment
              
 
               
              Answer by Patrickmol · Nov 17, 2020 at 06:43 PM
You could use coroutines and make a yeild return new waitforseconds that is less than the IK in a while true or you could use invoke repeating too.... I think you have more possibilities with those
Your answer