- Home /
when i try using .SimpleMove my object jumps back to its starting position
in the game i am making the player should be able to go from flying to running, and while i have the flying pretty much done the transition to running still requires a lot of work. You see the problem i am having is that when i turn the rigidbody to isKinematic and begin using .SimpleMove to navigate, the player jumps back to where the object was when the scene began.
the perpetrator of this foul bug seems to be this little block of code
if (isLanded == true)
{
if (Input.anyKey)
{
GetComponent(CharacterController).SimpleMove(direction * walkSpeed);
}
}
The code i have for changing the vector is very rough at the moment, and is mostly there for testing, example below.
if (Input.GetKey(KeyCode.S))
{
rigidbody.AddForce(0, -nav, 0);
direction = transform.TransformDirection(Vector3.forward);
walkSpeed = -wSpeed;
//Debug.Log("diving");
}
I can create a workaround for it but i would like to understand why my code isn't working the way i intended first, thanks in advance for your time.
is the character controller (or a parent object) itself animated? If so the animation is probably resetting the position.
you shouldn't use rigidbody and character controller at the came time. Very peculiar to handle. ins$$anonymous$$d of addForce, I'd suggest using transform.Translate. As for the moving back to beginning, it may be because of having rigidbody still active even if it is kinematic. Another thing to check is the child objects, as the character controller tries to be grounded, but if it has any child objects with any other colliders attached, it tries to climb upon child with rogue collider. make sure you don't have any colliders inside the hierarchy of the object with character controller. I hope this helps you.
Your answer
Follow this Question
Related Questions
CharacterController Gravity 2 Answers
Applying Constant Force on Multiple Axes Via Javascript? 1 Answer
if CharacterController hit a rigidbody 1 Answer
Make a object move forwards 1 Answer