Wow, that is a very unique way of coding, using all those animation states. I saw a brief tutorial about it at one point, but seeing it like this is very uncommon.
I haven't used Unity in about a decade and am coming from GameMaker to start learning C#. I'm writing this only after ~10 minutes of a brief explanation. But, if physics in Unity is anything like Box2D physics in GameMaker, Kinematic seems to be good for things like slopes. Default physics in GameMaker would make the instance slide down a slope when you want the instance to stop. You have to add constant force opposite gravity to keep the instance from moving. Also, going down a slope is actually falling down the slope and not moving down. If those issue exists with Unity, I'd imagine Kinematic would be better suited. Also, coyote time.
Thanks. Just a quick question, where is `PAP` coming from? (PAP.xMove is just a string, almost like constant, to work with the animator, isnt it?) edit: Actually i have another one: why do you have to multiply the force by the mass in DynamicPlayerInput? Wouldnt the rigidbody's AddForce already take that into account, since the mass is one of its properties?
If I have two units controlled by AI at the same time, how do I set things up so that they can block each other's movement while not pushing and changing others position? If I use two dynamic bodies, they will push another's position. If I use two kinematic body, they won't collide and overlap.