- Home /
Player movement: Sliding problem
Hi! first i have to say, that i am very new to scripting/coding.
i have a script for the player movement, it works. but when i walk along a wall, the player starts sliding and is moving very fast.
what can i do?
here is my movement script:
var walk = 3.0;
var RotationSpeed = 3.0;
var run = 3.0;
function Update ()
{
if(Time.timeScale)
{
var controller : CharacterController = GetComponent(CharacterController);
var Rotation = Input.GetAxis ("Horizontal")*RotationSpeed;
transform.Rotate(0, Rotation, 0);
// Move forward / backward
var forward = transform.TransformDirection(Vector3.forward);
var Speed = walk * Input.GetAxis ("Vertical");
// Run
if(Input.GetKey("left shift"))
{
Speed*=run;
}
controller.SimpleMove(forward * Speed);
}
}
Hello, i have had sort of the same problem with my character. What kind of collider do you have on your character? Try to put a capsule collider on it, and (if possible within your game) make it only from the floor till the hip. I had the problem that my character's collider was to high and made it slide over tables and go weird. Not sure if this is helping you.
First, do not use GetComponent() or Find() in an update function if you can avoid it. Call it once in the Start function and store it to a script-wide var and it will run a bit faster.
Other than that $$anonymous$$or bit of optimization, your code looks fine from here. I think the problem is inside controller.Simple$$anonymous$$ove - it might solve it if you just use controller.$$anonymous$$ove() ins$$anonymous$$d (you have to multiply by Time.deltaTime), but more likely than not I don't think there's much you can do about it from inside this script. Unity isn't the only engine that has some acceleration issues when sliding against things.
The question is, is this a bug...or a feature? Either way I would ignore it :P
Your answer
Follow this Question
Related Questions
Rigidbody problem 0 Answers
Player is Speeding up in collisions 0 Answers
All Unity Engine games' controls not working 1 Answer
Player move and camera problem 2 Answers
How to limit the forces applied to an object to just forward, left, and right? 0 Answers