Search Unity

  1. Welcome to the Unity Forums! Please take the time to read our Code of Conduct to familiarize yourself with the forum rules and how to post constructively.
  2. Dismiss Notice

Question Animator.applyBuiltInRootMotion ignoring previous transform.position set

Discussion in 'Animation' started by Stephanommg, Sep 13, 2023.

  1. Stephanommg

    Stephanommg

    Joined:
    Aug 18, 2014
    Posts:
    72
    I am setting the position of a game object like this:

    gameObject.transform.position = pos

    Then, in the same frame, OnAnimatorMove is being called and the animator calls applyBuiltInRootMotion. The current animation is Idle, so the character is supposed to stay in place. I expected that after the calling of this function, the gameObject position should be pos, but it is actually the previous position before setting to pos; It is as if the animator didn't process the position change and is applying the root motion based on the old position.

    Is this a bug or is the expected behavior? If so, is there a way to "update" the animator after the position assignment?
     
  2. Stephanommg

    Stephanommg

    Joined:
    Aug 18, 2014
    Posts:
    72