Character Controller Debug

Few questions stringed together

  1. I have been working on simple functionality of the character controller and I was wondering if there was a debugging info box that could help give me feedback of the characters current velocities while I am running around with him.

  2. I ask #1 because sometimes after I wall jump my vertical speed gets set to a constant so the character floats down to the platform at a diagonal path instead of a parabolic path. Is there a way i can re-instantiate gravity?

  3. Another problem with the velocity during the wall jump is when I am touching the wall. I make it so he slides down at a consistent rate to represent “sliding”(Note that this does not cause problem #2). To do this is use:
    if(touching wall)
    {
    movement.verticalSpeed = -5;
    }
    The problem here is if i jump off the wall and then back onto the wall without being grounded in between, The character will start to slide up the wall at the vertical speed 5. As if it took the original -5 and negated that.

I figured question #1 will help me debug #2 and #3 unless anyone has better ideas.

Thanks jlimbach

You can create a GUI speedometer:

function OnGUI(){
	var character = GetComponent(CharacterController);
	GUI.Box(Rect(10,10,120,25), "Vel: "+character.velocity);
}

Attach this script to your character controller and it will show the current character velocity in a vector format, which may be more useful to debug. You can also watch the absolute velocity using velocity.magnitude, or just the vertical velocity with velocity.y.

In any case, the velocity returned is relative to the character’s ground; if it’s stopped at a moving platform, the velocity shown will be 0.