Is Unity Physics Wasting CPU Time on Mobile? How to Detect and Reduce Hidden Physics Overhead
Physics systems can become a major source of CPU overhead in Unity mobile games, especially when simulation runs continuously without contributing meaningful gameplay logic. Common issues include unnecessary Auto Simulation, excessive collision pairs, frequent trigger callbacks, complex MeshColliders, and repeated FixedUpdate execution during long frames. This article explains the core causes of physics overhead and outlines practical optimization strategies based on actual profiling data and GameOptim analysis.
About GameOptim GameOptim helps Unity developers identify memory issues, rendering bottlenecks, and performance regressions through automated profiling and cloud based performance analysis. Explore more: 🌐 Website: www.gameoptim.com https://www.gameoptim.com/?fopt=blog 📘 Blog: www.gameoptim.com/blog/ https://www.gameoptim.com/blog/ 💼 LinkedIn: www.linkedin.com/company/gameoptim/ https://www.linkedin.com/company/gameoptim/ 🎥 YouTube: GO.PerformanceLab https://www.youtube.com/@GO.PerformanceLab 💬 Discord: GameOptim https://discord.gg/4Jh6hj9gRw ⭐ GitHub: GameOptim https://github.com/GameOptim/unity mobile performance guide 💻 Dev: GameOptim https://dev.to/gameoptim https://uwa overseas images.oss us east 1.aliyuncs.com/Blog/HeadImage/OptimizationGuide17%280%29.jpg Summary Physics optimization in Unity is not only about reducing collisions, but also about identifying whether the project truly needs continuous simulation. By analyzing Contacts count, trigger usage, collider complexity, and FixedUpdate frequency, developers can eliminate unnecessary CPU cost and improve frame stability on mobile devices. For deeper rendering optimization topics, refer to the Unity Performance Optimization Series — Physics Module https://www.gameoptim.com/blog/post/PhysicsModule . Core Concepts 1. Auto Simulation Since Unity 2017.4, Auto Simulation is enabled by default, meaning physics simulation continues running throughout the project lifecycle. However, this cost may be unnecessary. A key metric for判断 this is Contacts count . If Contacts remain 0 during the whole gameplay process, physics simulation may not be contributing to gameplay logic. In this case, developers can test by disabling Auto Simulation. If no gameplay issues appear, this cost can be removed entirely. Note: If raycasts are still needed after disabling Auto Simulation, Auto Sync Transforms must be enabled. 63 https://uwa ducument img.oss cn beijing.aliyuncs.com/GameOptim/3.4Physics/63.png 2. Contacts Count When physics is actively used, CPU cost increases with the number of collision pairs. In GOT Online Overview Mode, the Overlap Events curve reflects the Contacts count. Higher Contacts count means: More collision calculations More CPU overhead Optimization methods: Remove unnecessary Rigidbody components Optimize Layer Collision Matrix Reduce unnecessary collision detection between layers The report also provides: Rigidbody count Static Collider count These help identify inefficient physics setups. 64 https://uwa ducument img.oss cn beijing.aliyuncs.com/GameOptim/3.4Physics/64.png 3. Replacing OnTrigger Logic In many projects, trigger callbacks such as: are used for simple logic like: Position checks Interaction detection In these cases, they can often be replaced by: These methods perform simple geometric calculations and do not require full physics simulation. After replacing these callbacks, Auto Simulation may also be disabled entirely. Reference implementation: 65 https://uwa ducument img.oss cn beijing.aliyuncs.com/GameOptim/3.4Physics/65.png 4. Collider Complexity Physics cost depends not only on the number of colliders, but also on their complexity. By default, imported models often use MeshCollider . MeshCollider performs triangle based collision detection. This means: Higher triangle count Higher computation cost Higher memory usage In most projects, this level of precision is unnecessary. It is recommended to replace MeshCollider with simpler colliders: SphereCollider BoxCollider CapsuleCollider Even combining multiple simple colliders is usually more efficient. 5. Physics Update Frequency Unity physics updates run inside FixedUpdate . The more FixedUpdate calls per frame, the higher the physics cost. This depends on: Fixed Timestep Maximum Allowed Timestep A delayed frame can cause multiple physics updates in the next frame. Example: Fixed Timestep = 20 ms Maximum Allowed Timestep = 100 ms Results: 30 ms frame → 1 update 200 ms frame → 5 updates Reducing Maximum Allowed Timestep can effectively limit excessive physics updates. Recommended maximum: ≤ 5 66 https://uwa ducument img.oss cn beijing.aliyuncs.com/GameOptim/3.4Physics/66.png Best Practices Disable Auto Simulation if Contacts remain zero Strictly reduce unnecessary collision pairs Replace OnTrigger logic when full simulation is not required Avoid MeshCollider whenever possible Use simpler colliders for gameplay logic Optimize Layer Collision Matrix Reduce excessive FixedUpdate logic Adjust Maximum Allowed Timestep to control update frequency Key Takeaways Physics simulation may consume CPU even when unused Contacts count is the most direct indicator of collision overhead Trigger callbacks are not always necessary MeshCollider introduces higher CPU and memory cost FixedUpdate spikes can multiply physics overhead during long frames Optimizing physics setup improves CPU stability and runtime efficiency FAQ Q: When should Auto Simulation be disabled? If Contacts remain zero and gameplay does not depend on continuous physics simulation. Q: Is MeshCollider always necessary? No. In most gameplay scenarios, simpler colliders are sufficient. Q: Why do physics costs spike during frame drops? Because Unity may execute multiple FixedUpdate cycles to catch up. Q: What should be optimized first in physics? Contacts count, collider complexity, and FixedUpdate frequency. Continue reading the series 1. Why Do Mobile Games Crash, Lag, or Overheat? A Unified Framework for CPU, GPU, and Memory Optimization in Unity https://www.gameoptim.com/blog/post/OptimizationGuide1 2. How to Control Runtime Memory in Unity Mobile Games: PSS Standards, Memory Profiler Analysis, and Optimization Workflows https://www.gameoptim.com/blog/post/OptimizationGuide2 3. Common Resource Memory Issues in Unity Mobile Games https://www.gameoptim.com/blog/post/OptimizationGuide3 4. Why Is Texture Memory So High in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide4 5. How Do Vertex Count, Vertex Attributes, and Read/Write Settings Affect Mesh Performance in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide5 6. How Can You Reduce Animation Memory Usage and Runtime Overhead in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide6 7. How Can You Reduce Audio Memory Usage and Playback Overhead in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide7 8. How Can You Reduce Material Count and Avoid Material Related Performance Waste in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide8 9. How Can You Reduce Render Texture Memory Usage and Rendering Overhead in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide9 10. What Causes Excessive Shader Memory Usage and Variant Explosion in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide10 11. Why Do Font and Particle System Resources Consume Excessive Memory in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide11 12. Why Does Mono Heap Memory Keep Growing and Trigger GC Spikes in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide12 13. Why Is Memory Usage Still High After Optimizing Unity Resources? https://www.gameoptim.com/blog/post/OptimizationGuide13 14. What Defines a CPU Bottleneck in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide14 15. Unity Rendering CPU Optimization: Why Is Rendering Time So High? https://www.gameoptim.com/blog/post/OptimizationGuide15 16. What Causes UI Performance Bottlenecks in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide16 18. Why Is Unity Animation Taking Too Much CPU on Mobile? https://www.gameoptim.com/blog/post/OptimizationGuide18 19. How to Reduce Particle System CPU Spikes and Runtime Overhead in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide19 20. How Can I Reduce Unity Loading Time and Avoid Runtime Stutters? https://www.gameoptim.com/blog/post/OptimizationGuide20 21. How Can I Optimize Unity Logic Code, Lua, and Hotfix Runtime Performance? https://www.gameoptim.com/blog/post/OptimizationGuide21 22. How Do I Identify GPU Bottlenecks in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide22 23. How can developers accurately determine whether a Unity mobile game is GPU Bound using GPU Clocks? https://www.gameoptim.com/blog/post/OptimizationGuide23 24. How can developers identify and optimize GPU vertex stage bottlenecks in Unity mobile games? https://www.gameoptim.com/blog/post/OptimizationGuide24 25. How can developers identify and reduce GPU fragment stage bottlenecks in Unity mobile games? https://www.gameoptim.com/blog/post/OptimizationGuide25 26. How to Reduce Shader Complexity in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide26 27. How to Optimize Post processing in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide27 28. How to Reduce GPU Bandwidth in Unity Mobile Games? https://www.gameoptim.com/blog/post/OptimizationGuide28 29. Why Does My Unity Mobile Game Overheat, Drain Battery Fast, and Drop FPS After a While? https://www.gameoptim.com/blog/post/OptimizationGuide29