Everything seems to fall more slowly than in reality. To measure that, I’ve used Squiggle to plot (screenshot attached):
- red graph: the Y coordinate of a cube falling from a height of 22.17 until it hits a ground plane at Y=0
- green graph: the closed form calculated Y: Y(t)=Y0 - 1/2 * Physics.gravity * t * t
How comes the falling speed for a simple test like that doesn’t follow reality ? Any tricks I could use to fix that ?
Now, a long time ago, I noticed the same thing in the Newton physics engine. Is that an inherent problem with simulating reality / integrating motion ? Or is there a hidden minimum drag in PhysX ?
Info about my test:
- I set the rigid body drag to 0 (obviously)
- I’ve disabled automatic simulation and am running it myself. So every time I call Physics.Simulate(), I assume time is incremented by Time.fixedDeltaTime
- I think the jagged lines in my screenshot are just an artifact of how Squiggle draws the graphs
Thanks,
Vlad
I just dropped a sphere from 22.17 (with a standard rb component, all drag set to 0) on to a plate at -0.5 y (to allow for the radius of the sphere). I attached this script to it:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Fall : MonoBehaviour
{
float initialTime;
private void Start()
{
initialTime = Time.time;
}
void FixedUpdate()
{
print("Height: " + transform.position.y + " Time: " + (Time.time - initialTime));
}
}
It got to y = 0 in approximately 2.12 seconds (at the mercy of the physics time step). By my hand calculation, sqrt (2 * 22.17 / 9.81) that should be 2.126 seconds. Close enough. I guess your problem is not in the physics engine.
Hello,
I got a strange value about Height… -6,234501E-09 , my sphere stop is fall on the plane (collider).
What have done wrong?
Please help me, best regards.
You have done nothing wrong, that is just a very small float, representing zero:
-6,234501E-09 = -0.0000000062345
Hi! What is the unit because it is very very small if it is metre E-06 ( it is micron).
At first unity the one unite is the size of the object,
An example to make a game with a fish, Hmax is 3,45 m. cos = 45°




with the Unity engine , it is possible to obtain the results ?
Thanks for your answer.

The unit is metres, when a 1m diameter sphere rests on a plane at -0.5m, its centre y position is zero. Hence, the very small number, which is just a typical float result in computing when the result of a series of calculations is zero - there are many articles online that will explain this, e.g. Comparing float value to zero - Questions & Answers - Unity Discussions .
You can definitely make your fish game in Unity.