Update: V1.34 is now on the Asset Store! This is a great release with lots of improvements. Working on the next one already. Swimming is difficult if you want to do real 3D swimming, diving, etc. Just playing the swimming animation when walking through water is possible though. Use a water plane with a trigger and then check OnTriggerEnter+OnTriggerExit in the Player to set a 'bool swimming' to true/false (only if the collider is part of the water). Then pass it in LateUpdate to the animator like with the other variables that are being passed. Layers can be checked too of course. Note that you could have a 'defaultSpeed' variable that you set to agent.speed in Start and then simply set agent.speed = defaultSpeed + buffSpeed in Update. This way you don't have to hardcode the '5' either. And you may not need the skill name check.