Everyday Unity – Telegram
Everyday Unity
1.1K subscribers
157 photos
59 videos
42 files
2.36K links
A game developer and tech lead in a top grossing company posting Unity, programming, and gamedev related stuff that I find interesting
Website: https://gamedev.center

Most used tags are:
#performance
#shader
#interview

Author: @alexmtr
Download Telegram
Enable the Prebake Collision Meshes option in Player Settings, where possible, to
generate the runtime physics mesh data at build time. Otherwise, this data is generated
at runtime when an asset is loaded, and content with many physics meshes can incur a
high CPU cost on Unity’s Main thread during generation.

#physics #tips
Mesh colliders can be expensive, so substitute more complex mesh colliders with one
or more simpler primitive types, as required, to approximate the original shape.

#physics #tips
Consider disabling the Auto Sync Transforms option,
which was enabled by default after its introduction in
Unity 2017, in order to preserve backward compatibility.
It ensures that any modification of any transform will
be automatically and immediately synchronized to its
underlying Physics object. However, in many cases
it is not essential that this be done until the point at
which the Physics simulation is stepped, yet may take
noticeable CPU time during a frame. Disabling the
option will defer synchronization to a later point but may
well save CPU time overall.

#physics #tips
If you are using collision callbacks, enable the Reuse
Collision Callbacks option. This will avoid managed
allocations on each callback by reusing a single internal
Collision object during callbacks, rather than creating
a new one for each callback. As well, when using
callbacks, be mindful of doing complex work during
them, as this can really add up in heavy scenes with a
lot of collision events. Adding Unity Profiler markers to
your callbacks will make them visible and easier to track
down should they become a performance problem.

#physics #tips
Be careful if you are manually updating Animators because they normally use
Unity’s Job System to process in parallel but manual updates force them to process on
the Main thread.

#animation #tips
Animators are primarily intended for humanoid characters, but are often used to
animate single values (e.g., the alpha channel of a UI element). Although Animators
are convenient to use for their state machine flow, this is a relatively inefficient use
case. Internal benchmarks show that on a device such as a low-end iPhone 4S, the
performance of Animators beats that of Legacy Animation only when around 400 curves
are being animated.

#animation #tips
Avoid relying on more Unity Camera components than
you really need to achieve your rendering. For example,
it is not uncommon to find projects that use several
cameras to build up UI layers. Each Camera component
incurs overhead whether it does any meaningful work
or not. On more powerful target platforms this might be
negligible, but on lower-end or mobile platforms this can
be up to 1 ms of CPU time each.

#rendering #tips
Avoid too many dynamic lights when you use forward
rendering. Every dynamic light adds a new render pass
for every illuminated object.

#rendering #tips #lighting