Unity UI Performance tips - Sharing my findings
Limit the usage of 'Best Fit' and 'Rich Text' in Text components
Don't use dyanmic, use bitmap/static fonts if possible
Limit the usage of Outline/Shadow components on Text game objects. Bake the effect in the bitmap font instead
Stick to 'simple' sprites if possible. Avoid large 'tiled' sprites
Flatten out the transform hierarchy. The more nesting the more transform calculations needed to position children correctly
Uncheck "Pixel Perfect" in the Canvas settings. Big performance hitter.
Screen Space Overlay UI is slightly faster than Screen Space Camera. In Overlay the UI is drawn on top of the screen immediately avoiding all the culling and sorting that Camera space has to go through. (The performance hit shouldn't be that critical, and Screen Space Camera is convenient though, so maybe go with Camera and see if it causes you issues down the line)
Avoid stacking UI images/text on top of each other to best of your ability. This causes more overdraw and will slow things down
Subdivide your UI to multiple canvases based on what's static vs dynamically moving. Changing the position/rotation/scale/sprite/text of a UI element in a canvas causes a rebuild of the canvas' mesh for all its children. So having a single Canvas for the entire UI of your game is not a great idea. Divide it into logical groups that update/change together. e.g. Maybe each menu/screen/subscreen/popup has its own Canvas, maybe the hud top has a canvas vs the hud's bottom, etc.
General tip: Avoid Camera.main calls as it does Object.FindObjectWithTag every time it's accessed! Have a direct reference to the camera you're using instead.
Prefer enabling/disabling the canvas itself instead of the entire gameobject. Avoiding OnEnable/OnDisable callbacks on the entire hierarchy which could be expensive.
Avoid LayoutGroups. Roll out your own (see linked video for more details)
Updated pooled objects properties first before enabling it when borrowing an object from the pool. This avoids unnecessary dirtying of the object's hierarchy
With ScrollRects with many items, attach a Canvas (with no Pixel Perfect) to the scroll rect so that scrolling the items won't dirty out the elements in the outer canvases
Pool the items in the view. enable/disable elements as they get in/out of view
Clamp the velocity of the scrollview so that you don't end up with very small deltas making very small changes to your elements without it being apprently changing on screen
Turn off Raycast Target for static or non-interactive elements. This reduces the number of UI objects the collision/click/input raycast checker has to go through to determine what UI elements should receive events
Take out GraphicsRaycaster components from Canvases that don't require input events
Pack your sprites together to reduce drawcalls. Use Texture Packer or Unity's atlas/packer systems
https://forum.unity.com/threads/unity-ui-performance-tips-sharing-my-findings.524916/
#ui #performance #optimization #tips
Limit the usage of 'Best Fit' and 'Rich Text' in Text components
Don't use dyanmic, use bitmap/static fonts if possible
Limit the usage of Outline/Shadow components on Text game objects. Bake the effect in the bitmap font instead
Stick to 'simple' sprites if possible. Avoid large 'tiled' sprites
Flatten out the transform hierarchy. The more nesting the more transform calculations needed to position children correctly
Uncheck "Pixel Perfect" in the Canvas settings. Big performance hitter.
Screen Space Overlay UI is slightly faster than Screen Space Camera. In Overlay the UI is drawn on top of the screen immediately avoiding all the culling and sorting that Camera space has to go through. (The performance hit shouldn't be that critical, and Screen Space Camera is convenient though, so maybe go with Camera and see if it causes you issues down the line)
Avoid stacking UI images/text on top of each other to best of your ability. This causes more overdraw and will slow things down
Subdivide your UI to multiple canvases based on what's static vs dynamically moving. Changing the position/rotation/scale/sprite/text of a UI element in a canvas causes a rebuild of the canvas' mesh for all its children. So having a single Canvas for the entire UI of your game is not a great idea. Divide it into logical groups that update/change together. e.g. Maybe each menu/screen/subscreen/popup has its own Canvas, maybe the hud top has a canvas vs the hud's bottom, etc.
General tip: Avoid Camera.main calls as it does Object.FindObjectWithTag every time it's accessed! Have a direct reference to the camera you're using instead.
Prefer enabling/disabling the canvas itself instead of the entire gameobject. Avoiding OnEnable/OnDisable callbacks on the entire hierarchy which could be expensive.
Avoid LayoutGroups. Roll out your own (see linked video for more details)
Updated pooled objects properties first before enabling it when borrowing an object from the pool. This avoids unnecessary dirtying of the object's hierarchy
With ScrollRects with many items, attach a Canvas (with no Pixel Perfect) to the scroll rect so that scrolling the items won't dirty out the elements in the outer canvases
Pool the items in the view. enable/disable elements as they get in/out of view
Clamp the velocity of the scrollview so that you don't end up with very small deltas making very small changes to your elements without it being apprently changing on screen
Turn off Raycast Target for static or non-interactive elements. This reduces the number of UI objects the collision/click/input raycast checker has to go through to determine what UI elements should receive events
Take out GraphicsRaycaster components from Canvases that don't require input events
Pack your sprites together to reduce drawcalls. Use Texture Packer or Unity's atlas/packer systems
https://forum.unity.com/threads/unity-ui-performance-tips-sharing-my-findings.524916/
#ui #performance #optimization #tips
Unity - Scripting API: Graphics.DrawMeshInstancedIndirect
Difference between Graphics.DrawMeshInstancedIndirect and Graphics.DrawMeshInstanced with examples
https://docs.unity3d.com/ScriptReference/Graphics.DrawMeshInstancedIndirect.html
#gpu #instancing
Difference between Graphics.DrawMeshInstancedIndirect and Graphics.DrawMeshInstanced with examples
https://docs.unity3d.com/ScriptReference/Graphics.DrawMeshInstancedIndirect.html
#gpu #instancing
Chapter 2. Animated Crowd Rendering | NVIDIA Developer
https://developer.nvidia.com/gpugems/gpugems3/part-i-geometry/chapter-2-animated-crowd-rendering
#gpu #animation #instancing
https://developer.nvidia.com/gpugems/gpugems3/part-i-geometry/chapter-2-animated-crowd-rendering
#gpu #animation #instancing
NVIDIA Developer
Chapter 2. Animated Crowd Rendering
Rider 2020.2 Roadmap - .NET Tools Blog.NET Tools Blog
https://blog.jetbrains.com/dotnet/2020/05/29/rider-2020-2-roadmap/
#rider #roadmap
https://blog.jetbrains.com/dotnet/2020/05/29/rider-2020-2-roadmap/
#rider #roadmap
JetBrains Blog
Rider 2020.2 Roadmap | The .NET Tools Blog
In this post, we’d like to share our plans for Rider 2020.2 and find out what we can do next to improve your development experience. Your feedback is always welcome!The following is a list of our
GPU Spline Deformation in Unity - Roy Theunissen
https://medium.com/@roy.theunissen/gpu-spline-deformation-in-unity-a710f55f210c
Repo: https://github.com/RoyTheunissen/GPU-Spline-Deformation
#mesh #spline #deformation #bezier
https://medium.com/@roy.theunissen/gpu-spline-deformation-in-unity-a710f55f210c
Repo: https://github.com/RoyTheunissen/GPU-Spline-Deformation
#mesh #spline #deformation #bezier
Medium
GPU Spline Deformation in Unity
How to deform any mesh along a spline by leveraging textures
ArtStation - Tileable Liquid Mesh on Spline, Simon Trümpler
https://www.artstation.com/artwork/BmN5G6
#liquid #mesh #vfx
https://www.artstation.com/artwork/BmN5G6
#liquid #mesh #vfx
Arm Guide for Unity Developers Optimizing Mobile Gaming Graphics Version 4.2 – Arm Developer
https://developer.arm.com/docs/100140/0402
#arm #mali #guide #gpu #graphics
https://developer.arm.com/docs/100140/0402
#arm #mali #guide #gpu #graphics
ARM Developer
Arm Guide for Unity Developers Optimizing Mobile Gaming Graphics Version 4.2 – Arm Developer
Unity – Arm Developer
Arm guides for Unity
https://developer.arm.com/solutions/graphics-and-gaming/gaming-engine/unity
#arm #guides #unity
Arm guides for Unity
https://developer.arm.com/solutions/graphics-and-gaming/gaming-engine/unity
#arm #guides #unity
Arm Developer
Unity – Arm Developer
Unity® software is the most popular development software used by developers to create games and applications across multiple platforms. From large publishers to indie studios, students and hobbyists, Unity boasts a thriving community.
GitHub - yasirkula/UnitySimplePatchTool: Unity port of SimplePatchTool library to add patching support to standalone Unity applications
https://github.com/yasirkula/UnitySimplePatchTool
#patch #tool
https://github.com/yasirkula/UnitySimplePatchTool
#patch #tool
GitHub
GitHub - yasirkula/UnitySimplePatchTool: Unity port of SimplePatchTool library to add patching support to standalone Unity applications
Unity port of SimplePatchTool library to add patching support to standalone Unity applications - yasirkula/UnitySimplePatchTool
Laigter: normal map generator! - Lets Build Community 👩💻👨💻
https://letsbuild.gg/azagaya/laigter-normal-map-generator-2k12
#sprite #normal #map #generator
https://letsbuild.gg/azagaya/laigter-normal-map-generator-2k12
#sprite #normal #map #generator
GitHub - Unity-Technologies/Unity-Simulation-Smart-Camera-Outdoor: Unity Simulation Sample project for outdoor smart camera usecase
https://github.com/Unity-Technologies/Unity-Simulation-Smart-Camera-Outdoor
#smart #camera #city #simulation
https://github.com/Unity-Technologies/Unity-Simulation-Smart-Camera-Outdoor
#smart #camera #city #simulation
GitHub
GitHub - Unity-Technologies/Unity-Simulation-Smart-Camera-Outdoor: Unity Simulation Sample project for outdoor smart camera usecase
Unity Simulation Sample project for outdoor smart camera usecase - GitHub - Unity-Technologies/Unity-Simulation-Smart-Camera-Outdoor: Unity Simulation Sample project for outdoor smart camera usecase
Speed up mobile iteration with the new Device Simulator - Unity Technologies Blog
Unity 2019.3
https://blogs.unity3d.com/2019/09/27/speed-up-mobile-iteration-with-the-new-device-simulator/
#device #simulator
Unity 2019.3
https://blogs.unity3d.com/2019/09/27/speed-up-mobile-iteration-with-the-new-device-simulator/
#device #simulator
Unity Blog
Speed up mobile iteration with the new Device Simulator | Unity Blog
When you’re creating content for mobile devices, you have to test and tweak your project to make sure it works with a huge variety of device characteristics. Even if you have access to all of your targeted hardware, getting a sense of how your content will…
GitHub - MaxSigma/UnityExperiments: Collection of experimental Unity Projects
Interesting effects and features, e.g. marching cubes and Displacement Shader
https://github.com/MaxSigma/UnityExperiments
#shader #vfx #collection
Interesting effects and features, e.g. marching cubes and Displacement Shader
https://github.com/MaxSigma/UnityExperiments
#shader #vfx #collection
GitHub
GitHub - MaxSigma/UnityExperiments: Collection of experimental Unity Projects
Collection of experimental Unity Projects. Contribute to MaxSigma/UnityExperiments development by creating an account on GitHub.
Android Mobile Notifications With Unity | raywenderlich.com
https://www.raywenderlich.com/4735664-android-mobile-notifications-with-unity
#notifications
https://www.raywenderlich.com/4735664-android-mobile-notifications-with-unity
#notifications
kodeco.com
Android Mobile Notifications With Unity
In this tutorial, you’ll learn about Unity’s Mobile Notifications and how to create and schedule your very own notifications for a Unity app running on an Android device.
Integrating Native C/C++ libraries with Unity as Plugins (A step by step guide)
https://medium.com/@paawilly17/integrating-native-c-c-libraries-with-unity-as-plugins-a-step-by-step-guide-17ad70c2e3b4
#dll #c #cpp #libs
https://medium.com/@paawilly17/integrating-native-c-c-libraries-with-unity-as-plugins-a-step-by-step-guide-17ad70c2e3b4
#dll #c #cpp #libs
Medium
Integrating Native C/C++ libraries with Unity as Plugins (A step by step guide)
As a Graduate Research Assistant at the Virtual Reality, Simulation, Imaging and Modeling (ViRaSIM) Lab at the department of Computer…
Unity's evolving best practices
https://unity3d.com/how-to/unity-best-practices-for-engine-performance
#performance #optimization #tips
https://unity3d.com/how-to/unity-best-practices-for-engine-performance
#performance #optimization #tips
Thread Synchronization Performance
https://jacksondunstan.com/articles/5522
#thread #multi #parallel #performance #synchronization
https://jacksondunstan.com/articles/5522
#thread #multi #parallel #performance #synchronization
How Anti Air makes use of the Unity - Combine Meshes functionality for optimization - IndieWatch
https://indiewatch.net/2020/06/04/how-anti-air-makes-use-of-the-unity-combine-meshes-functionality-for-optimization/
#mesh #combine
https://indiewatch.net/2020/06/04/how-anti-air-makes-use-of-the-unity-combine-meshes-functionality-for-optimization/
#mesh #combine
indiewatch.net
RAJASLOTO >> Situs Slot Online Gacor Terpercaya dengan Fitur Lengkap di MontereyBiz
RAJASLOTO ,rajasloto login link alternatif, daftar rajasloto, heylink rajasloto, slot login rajasloto, Situs Slot Online Gacor Terpercaya dengan Fitur Lengkap di MontereyBiz
Ultimate 10+ Shaders | VFX Shaders | Unity Asset Store
https://assetstore.unity.com/packages/vfx/shaders/ultimate-10-shaders-168611?aid=1011l8NVc&utm_source=aff
#shader #collection
https://assetstore.unity.com/packages/vfx/shaders/ultimate-10-shaders-168611?aid=1011l8NVc&utm_source=aff
#shader #collection
Unity Asset Store
Ultimate 10+ Shaders | VFX Shaders | Unity Asset Store
Add depth to your next project with Ultimate 10+ Shaders from The Developer. Find this & more VFX Shaders on the Unity Asset Store.
Make clickable links in Unity TextMeshPro
https://medium.com/@immops/make-clickable-links-in-unity-textmeshpro-8b72b24a820f
#clickable #text #url
https://medium.com/@immops/make-clickable-links-in-unity-textmeshpro-8b72b24a820f
#clickable #text #url
Medium
Make clickable links in Unity TextMeshPro
How to make links in TMP text clickable? Simple! Everything what you need is open TextMeshPro docs and add some code.