- Home /
my player doesn't move at the proper speed for a random time after the level has loaded
i am using the following script
var speed : float = 10; var gravity : float = 20; var rotateSpeed : float = 5;
function Update () {
var controller : CharacterController = GetComponent(CharacterController);
if(controller.isGrounded && Input.GetKey("up"))
{
moveDirection = Vector3(0, 0, speed);
moveDirection = transform.TransformDirection(moveDirection);
}
transform.Rotate(0, Input.GetAxis("Horizontal") * rotateSpeed * Time.deltaTime, 0);
moveDirection.y -= gravity * Time.deltaTime;
controller.Move(moveDirection * Time.deltaTime);
}
but for some reason the player does not move at the speed i declared in the speed variable for some time after the level has loaded, this time is sometimes after a couple of seconds and i often just give up waiting it takes so long. is there something wrong with my script or just a bug in unity?
Answer by robertbu · Dec 11, 2013 at 03:04 AM
The code as it stands does not compile. If you drop this line in at the top of update...
var moveDirection = Vector3.zero;
...then it works fine on my machine. Any chance you have child object attached to the character? If they have colliders, they can cause collisions and unanticipated behaviors.
Start with a new scene, a plane and a capsule. Attach your script and test it. If it works there, then you know there is something different about your current scene that is causing the problem.
thanks, i will try it out. im new to this so that script isn't all my work and some bits i don't fully understand so i would have been suprised if it was complete
Your answer
Follow this Question
Related Questions
How can i do so when my car moves an object follows it? 1 Answer
Player parent to platform problem 0 Answers
Mathf.SmoothStep not quite working. 1 Answer
Opening a door at proximity 2 Answers
Moving a box. 1 Answer