- Home /
Synchronise translation with Physics
I am trying to make a platformer and the main character has a rigidbody attached. He moves horizontally with the translate function (inside the Update) and vertically by addForce and gravity. However there is a stutter when player falls or jumps because my camera follow script uses Update while gravity is calculated in FixedUpdate. I tried everything from interpolate, changing everything to FixedUpdate and lerping the camera movement but there is always a slight stutter. My question is if it's impossible to sync physics with translate perfectly. If not can you suggest me anything? I start to think that i should use a character controller and make my own gravity which is calculated in the Update function. Thank you for listening!
First of all thanks for the answer! I did as you said. I actually had already tried this setup! While interpolation, horizontal translation in FixedUpdate and LateUpdate completely fixes the jitter on y axis, both on player and the scene, they introduce jitter on the x axis. Only the scene jitters, not the player! The player's motion is perfect! But this setup also makes the game unplayable. All this happens without lerping the camera... When i lerp the camera then again i only have jitter on x axis but on the player this time ins$$anonymous$$d of the scene. Thanks for trying to help!
You said translation in FixedUpdate. Set the velocity x value ins$$anonymous$$d
Yep i tried this a few $$anonymous$$utes before i saw your post and it indeed fixed the problem entirely! You were very helpful and i wouldn't get it right without your initial reply! How can i mark it as correct answer? I am new around here! Also i would like to know why translation inside FixedUpdate was not so smooth but velocity did the trick. Is translation inside FixedUpdate a bad thing?
FixedUpdate runs frame independent. The rigidbody can only interpolate there when it knows where it will be at all times, via velocity that is. When you translate it it will be "somewhere"when it gets rendered. If you set the time scale to a very low value you can see the rigidbody jumping when translated and smoothly moving when correctly affected by physics.
Answer by hexagonius · Mar 25, 2015 at 05:54 PM
It is possible. Set the rigidbody to interpolate. Do all movements in FixedUpdate() (For AddForce it's not important since the force is applied correctly in FixedUpdate). Have your Camera translate in LateUpdate().
Your answer
Follow this Question
Related Questions
Limit & Scaling Translation Rate. 0 Answers
RigidBody2D Movement Stuttering 3 Answers
Gravity only rigidbody 1 Answer
Using Rigidbody.MovePosition With Local Position and Lerp 2 Answers
2D 360 degress platformer example needed 0 Answers