Max scale in unity3d

Hello. What is the max scale for objects in unity3d + scale-factor?

Can i make planet size = 60000 and ship size:0.001?

If max scale = 100000, then why? Float has value limit from -3.402823e38 to 3.402823e38.

Not sure why you couldn’t have done this yourself, but never mind…

38268-scale.jpg

You can set all values of a transform to as high as floats values can go. Physics simulation and everything will run as normal. The problem you run into is the Imprecision of float values. Which gets really noticeable with large values.

A simple test/example I use to show people to demonstrate this is:

1: Create a new scene

2: Create a Sphere (with collider)

3: Put the sphere at x position 100 000.

4: Focus the sceneview on the sphere and try to rotate the camera around it. Already now you can see slight jittering of the sphere.

5: Set the x,y,z scale of the sphere to be 0.01.

6: Focus the sceneview on the sphere and try to rotate the camera around it. You will see that the collider and sphere will jump all over the place.

This is the result of the imprecision of floating numbers. It is not that the sphere actually moves around (its transform position is static), but its position is too imprecise to actually draw correctly every update or the camera movement is too imprecise or similar.

So this is something you need to take into consideration when working with large numbers.

Space simulators with accurate scaling (for example Kerbal Space Program) solves this issue by never actually moving the camera away from the center of the scene, but rather moving all objects around instead. So when focusing on a planet far at the edge of the solar system, the entire solar system is moved to position the planet correctly in the center (0, 0, 0) of the scene.