0
\$\begingroup\$

Relative to what they are by default, I mean. For example compared to the character controllers that come with Unity. If I make the character 4 times the size, will that cause problems, with the physics and everything? Or are there just changes in a couple values that I'd need to make?

Does Unity expect that 1 unit will always be around 1 meter?

\$\endgroup\$
1
  • \$\begingroup\$ Unity does not expect that unit conversion, you can define one that suit your needs. As far as I know, physics in Unity works in a metric system, so if you need to scale objects, make the proper conversions for the physics engine. \$\endgroup\$
    – felipe
    Jan 11, 2015 at 16:27

2 Answers 2

1
\$\begingroup\$

Floating point errors will start creeping in if things are WAY bigger than Unity expects, but just 4 times bigger should be fine (assuming of course you're consistent with everything!) I'm talking more like if you tried to simulate the entire solar system at 1 unit = 1 meter.

\$\endgroup\$
0
\$\begingroup\$

No, scaling an object will not have adverse effects as described by yourself. Physics will still function. And like @gjocking mentions in his answer, floating point errors might creep in on a way bigger size.

The only adverse effect scaling has is the extra draw call if you are using dynamic batching

  • scale changing will break dynamic batching - so you will get one more draw call

    However with static batching you would still get 1 draw call.

also in case of scaled meshes GPU re-normalization state must be set (otherwise your lighting will go wonky), therefore scaled and non-scaled meshes can not be batched together.

Also if a non uniform scale is used the mesh will be copied. ONLY if non-uniform scale is used. In case of uniform scale (both X, Y and Z scale are equal) Unity will NOT make a copy of a mesh and will be completely handled by the GPU.

\$\endgroup\$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .