- Home /
Camera stutter when following a RigidBody2D
I'm creating an endless runner and I want the camera to go the same speed as the player (controlled by the PlatformerCharacter2D script from the standard assets) but since the player can sometimes mistime their jump and lose a second if they hit the side of the platform instead of jumping on top of it, the camera is to ignore it and go forth without waiting for the player to catch up.
To do it, I created a dummy empty object and added a RigidBody2D to it, setting everything to 0 and in the script of the dummy, I set it to the player position and give it the velocity I want (the same as the player most often):
public float speed;
void Start () {
transform.position = GameObject.Find("Character").transform.position;
GetComponent<Rigidbody2D>().velocity = new Vector2(speed, 0);
}
Then, I just use the camer'a script to take the dummy's position:
public Transform DummyTransform;
void Update () {
transform.position = new Vector3(DummyTransform.position.x + 6, transform.position.y, transform.position.z);
}
This works but results in enormous stutter causing everything to shake and twitch a visible amount. If, however, I set the dummy to just move a constant number of pixels per frame:
void Update()
{
transform.position = new Vector3(transform.position.x + 0.12f, transform.position.y, transform.position.z);
}
OR I tell the camera to follow the player and not the dummy:
void Update () {
transform.position = new Vector3(player.position.x + 6, transform.position.y, transform.position.z);
}
Then everything is fine and dandy. Why is that so? How can I repair it so that I can have it follow the dummy object smoothly?
Your answer
Follow this Question
Related Questions
Problems changing camera position 1 Answer
Problem with the camera, 2D. 0 Answers
Mouse movement shakes camera. 2 Answers
How can I lock my camera on the Y-axis? 0 Answers
How to add QR Scanner border? 0 Answers