Quantcast
Channel: Questions in topic: "measure"
Viewing all articles
Browse latest Browse all 91

Rigidbody speed calculations not equal to frames per second?

$
0
0
Recently I've been focusing on Vector maths, find a vector along a line, etc.. So I'm trying to calculate different speeds between two objects that they meet at a point. And upon refactoring my "Speed" calculations, I'm noticing something that doesn't make sense.. float forceToAdd = 4000f; // rb.AddForce(forward * 4000f) float speedPerSecond = forceToAdd / 50f; float distancePerFrame = speedPerSecond / 50f; // targetFPS = 60; ^ This is basically the summed up version of what the math is doing.
After researching, all speed correlations in Unity use Units/perSecond, which can be called meters, or whatever you so choose. I get that, it's just a form of measurement. But how in the world are the calculations going by fractions of 50, when the target frame rate is a solid 60?
If you're curious to what the code looks like to get the results: float lifetime = Vector3.Distance(fromPosition, trans.position); // gives 1.6 a frame float rbSpeed = Mathf.Round(rb.velocity.magnitude); // gives 80 @ 4000 force print($"{name} is rbSpeed {rbSpeed} @ lifeTime {lifetime}"); As lifetime just gives the distance from the start position each frame, in this equation is "1.6", and rbSpeed is giving "80".. 4000 / 50 = 80, 80 / 50 = 1.6...
Is there something I'm missing, within the hard code of unity? Or should I just not care, and move on about my day? Or would this have more to do with calling this math within Update(), and not FixedUpdate()?
* I would still need each frame to calc properly, regardless if fixed update gives correlations to 60.

Viewing all articles
Browse latest Browse all 91

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>