The Physics ProfilerA window that helps you to optimize your game. It shows how much time is spent in the various areas of your game. For example, it can report the percentage of time spent rendering, animating or in your game logic. More info
See in Glossary displays statistics about physics that have been processed by the physics engineA system that simulates aspects of physical systems so that objects can accelerate correctly and be affected by collisions, gravity and other forces. More info
See in Glossary in your SceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary. This information can help you diagnose and resolve performance issues or unexpected discrepancies related to the physics in your Scene.
See also Physics Debug Visualization.
Property | Function |
---|---|
Active Dynamic | The number of non-Kinematic RigidbodyA component that allows a GameObject to be affected by simulated gravity and other forces. More info See in Glossary components that are not sleeping. |
Active Kinematic | The number of Kinematic Rigidbody components that are not sleeping. Note that Kinematic Rigidbody components with jointsA physics component allowing a dynamic connection between rigidbodies, usually allowing some degree of movement such as a hinge. More info See in Glossary attached may be processed multiple times per frame, and this contributes to the number shown. A Kinematic Rigidbody is active when MovePosition or MoveRotation is called in a frame, and remains active in the next frame. |
Static Colliders | The number of ColliderAn invisible shape that is used to handle physical collisions for an object. A collider doesn’t need to be exactly the same shape as the object’s mesh - a rough approximation is often more efficient and indistinguishable in gameplay. More info See in Glossary components on GameObjectsThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info See in Glossary that don’t have Rigidbody components attached to the GameObjects or their parent GameObjects. If such GameObjects or their parent GameObjects have Rigidbody components, the Colliders will not count as Static Colliders. Those Colliders are instead referred to as Compound Colliders. These help to arrange multiple Colliders of a body in a convenient way, rather than having all the Colliders on the same GameObject as the Rigidbody component. |
Rigidbody | The number of Rigidbody components processed by the physics engine, irrespective of the components’ sleeping state. |
Trigger Overlaps | The number of overlapping triggers (counted in pairs). |
Active Constraints | The number of primitive constraints processed by the physics engine. Constraints are used as a building block of Joints as well as collisionA collision occurs when the physics engine detects that the colliders of two GameObjects make contact or overlap, when at least one has a rigidbody component and is in motion. More info See in Glossary response. For example, restricting a linear or rotational degree of freedom of a ConfigurableJoint involves a primitive constraint per each restriction. |
Contacts | The total number of contact pairs between all Colliders in the Scene, including the amount of trigger overlap pairs as well. Note that contact pairs are created per Collider pair once the distance between them is below a certain user configurable limit, so you may see contacts generated for Rigidbody components that are not yet touching or overlapping. Refer to Collider.contactOffset and ContactPoint.separation for more details. |
Notes:
The numbers might not correspond to the exact number of GameObjects with physics components in your Scene. This is because some physics components are processed at a different rate depending on which other components affect it (for example, an attached Joint component). To calculate the exact number of GameObjects with specific physics components attached, write a custom script using the FindObjectsOfType function.
The Physics Profiler does not show the number of sleeping Rigidbody components. These are components which are not engaging with the physics engine, and are therefore not processed by the Physics Profiler. Refer to Rigidbody overview: Sleeping for more information on sleeping Rigidbody components.
The physics simulation runs on a separate fixed frequency update cycle from the main logic’s update loop, and can only advance time via a Time.fixedDeltaTime
per call. This is similar to the difference between Update()
and FixedUpdate()
(see documentation on the Time ManagerA Unity Settings Manager that lets you set a number of properties that control timing within your game. More info
See in Glossary for more).
When a heavy logics or graphics frame occurs that takes a long amount of time, the Physics Profiler has to call the physics simulation multiple times per frame. This means that an already resource-intensive frame takes even more time and resources, which can easily cause the physics simulation to temporarily stop due to the Maximum Allowed Timestep value (which can be set in Edit > Project SettingsA broad collection of settings which allow you to configure how Physics, Audio, Networking, Graphics, Input and many other areas of your Project behave. More info
See in Glossary > Time).
You can detect this in your project by selecting the CPU Usage Profiler and checking the number of calls for Physics.Processing or Physics.Simulate in the Overview section.
In this example image, the value of 1 in the Calls column indicates that the physics simulation was called one time over the last logical frame.
A call count close to 10 might indicate an issue. As a first solution, reduce the frequency of the physics simulation; if the issue continues, check what could have caused the heavy frame right before the Physics Profiler had to use that many simulation calls in order to catch up with the game time. Sometimes, a heavy graphics frame may cause more physics simulation calls later on in a Scene.
For more detailed information about the physics simulation in your Scene, click the triangle arrow to expand Physics.Processing as shown in the screenshot above. This displays the actual names of the physics engine tasks that run to update your Scene. The two most common names you’re likely to see are:
Pxs: short for ‘PhysX solver’, which are physics engine tasks required by joints as well as resolving contacts for overlapping bodies.
ScScene: used for tasks required for updating the Scene, running the broad phase and narrow phase, and integrating bodies (moving them in space due to forces and impulses). See Steven M. LaValle’s work on Planning Algorithms for a definition on two-phase collision detectionAn automatic process performed by Unity which determines whether a moving GameObject with a rigidbody and collider component has come into contact with any other colliders. More info
See in Glossary phases.