Hi Rose,
It sounds like something outside the Dialogue System is setting it back. In your animator controller, is there a transition arrow from anything to Idle?
Maybe your PlayerMovement script is still controlling the animator somehow even if it's disabled. Or maybe some other script is setting it to Idle.
What's the complete sequence? If it's something like this:
Code: Select all
AnimatorPlay(Walk, Player);
AnimatorPlay(Idle, Player)
then that could be causing the issue. Unless you use the "@" syntax to specify timing, a command will run as soon as the dialogue entry node starts. In the sequence above, neither command has "@", so the first one will play "Walk" and then the second one will immediately change to "Idle". If you wanted to walk for 2 seconds and then switch to Idle, you could do something like:
Code: Select all
AnimatorPlay(Walk, Player);
AnimatorPlay(Idle, Player)@2
If this sequence is on a node spoken by the player actor, you can omit the GameObject name:
Code: Select all
AnimatorPlay(Walk);
AnimatorPlay(Idle)@2
I also recommend putting "required" in front of the second command:
Code: Select all
AnimatorPlay(Walk);
required AnimatorPlay(Idle)@2
This way, if the player clicks the continue button to skip ahead before 2 seconds have elapsed, it will still play the Idle animation.