- Home /
How to tell if the player is turning?
Afternoon, guys.
I want to do that thing where the player leans in the direction that they're turning. The only hiccup I'm running into is how, exactly, you'd tell when they actually are turning, and how much.
The character uses a Character Controller for movement, and I have a kinematic Rigidbody for trigger detection.
I've tried using the Rigidbody's Angular Velocity function, but no matter what I do, it always shows up as zero. The code for that is just
var characterTurning : Vector3;
function Update () {
characterTurning = rigidbody.angularVelocity;
}
Which is really simple, and should totally work by my reasoning, but it just doesn't. I've tried it with and without the Rigidbody being Kinematic.
Any idea what I can do on this? I've never been able to find anything on it anywhere.
Answer by xt-xylophone · Jan 28, 2014 at 10:08 PM
The rigidbody has no angular momentum because it is not using physics to move. This is what a kinematic rigidbody is.
What code are you using to turn the character? You could possibly save the Y rotation at the start of each update and then after 'turning' code you can compare and if they are different by an amount you want, then it has turned.
Ah, that explains the Rigidbody. Your solution is, in fact, exactly what I'm looking for! For some reason I always forget that the stuff inside of functions go in the order that they appear, rather than all at once.
Answer by Nanocentury · Jan 28, 2014 at 10:47 PM
I'm pretty sure the official Mechanim tutorial should give you a fairly good place to start. http://video.unity3d.com/video/7362044/unity-40-mecanim-animation-tutorial
Aye, I've tried looking at that one, but I'm using a different method for the movement, where the player will head in the direction of A and D rather than being constantly turned by them.