WINNER of the BEST DEVELOPMENT TOOL in the Unity Awards 2018. Hello people! After years of using various debugging tools, I decided to make my own as a labour of love, that eventually became something I though could be useful to the Unity community. This asset is much more than a simple FPS counter, and at a very affordable price... FREE! Graphy is the ultimate, easy to use, FPS counter, stats monitor and debugger for your project. Link to the Asset Store: https://www.assetstore.unity3d.com/#!/content/105778?aid=1100l24505 Link to the Github Repo: https://github.com/Tayx94/graphy Try the WebGL demo: https://martinpane.com/graphy-demo Main Features: FPS Counter (Graph and Text) Memory Counter (Graph and Text) Audio Spectrum (Graph and Text) Advanced device information Debugging tools With this tool you will be able to visualize and catch when your game has some unexpected hiccup, and act accordingly! Teaser: Graphy also includes a debugger script! The debugger allows you to set one or more conditions, that if met will have the consequences you desire, such as taking a screenshot, pausing the editor, printing a message to the console and more! Even call a method from your own code if you want (through Unity Events or C# System.Action)! Additional features: - Customizable look and feel - Multiple layouts - Custom Inspectors! - Background overlay to improve readability in cluttered scenes - Hotkeys (Modify them to your liking) - Easy to use API (accessible from code) - Works on multiple platforms (Tested on PC, Mac and Android, but it should work on almost anything) - Has been reported to work in VR by Dragonhill (just set the Canvas to World Space, lower the scale to 0.001, and put it anywhere you like) - Keep Alive (it will survive scene changes) - Background Mode (Negligible impact in performance) - There is a LIGHT version that is more compatible with older hardware. - Well documented C# and Shader code included (yes, it uses shaders!) FAQ: 1 - Do you have an approximate ms figure on typical midrange desktop hardware, with all features enabled? - Yes, less than 0.1 ms in a build and around 0.3-0.7 ms in the Editor due to the extra Editor overhead. 2 - Is it possible to disable a module if it's not needed, to save a few cycles? - Yes, it's possible, and really easy. You just have to set Module State to OFF and you're good to go! 3 - How is Graphy rendered? - It's being rendered through the Unity UI. Graphy is contained in a standard Canvas, and you have complete control over it. Link to the Asset Store: https://www.assetstore.unity3d.com/#!/content/105778?aid=1100l24505 Link to the Github Repo: https://github.com/Tayx94/graphy Try the WebGL demo: https://martinpane.com/graphy-demo If you have any questions or would like to know more, don't hesitate to contact me! Leave a comment below or get in touch through one of the following links. Contact: - Mail - Twitter - Discord (We have an active community, and I can chat with you in real time to solve your problems faster!) ------------------------------------------------------------------------------------------ Changelog: Spoiler: Changelog v1.5.2 - Removed asmdefs to avoid missing reference issues in new Unity alpha versions. - Improvements avgFps calculation, changed list to array (thanks @Kaladrius2trip). Spoiler: Changelog v1.5.1 - Hide Graphy in Game view when it's be disabled on startup. - Fixed error if no camera is present in the scene. - Added SceneManager namespace so to avoid possible conflicts. - Added support for asmdefs (thanks @QSFW). Spoiler: Changelog v1.5 - Fixed a number alignment in the audio module (thanks @SuperPenguin). - Refactored some code to avoid warnings with the new NET framework 4.0. - Shader sorting fix for Screen Space - Camera. - Fixed a possible Null Reference Error in the debugger (thanks @strawlink). - Fixed import settings in 2 textures (thanks @strawlink). - Renamed all Action into System.Action to avoid possible namespace conflicts. - Fixed the int rounding to prevent 59.99999FPS from turning into 59FPS (thanks @Rockylars). Spoiler: Changelog v1.4.3 - Renamed all the classes with the "G_" prefix to avoid namespace issues with external code (thanks @Rockylars). - Refactored some code and added explanations and regions in the G_ShaderGraph class. - Assigned all the variables in their declaration to avoid a new NET framework warning. Spoiler: Changelog v1.4.2 - Added the option to disable hotkeys. - Disabled hotkey check when Editor is not focused (thanks @Rockylars). - Refatored and cleaned up code (thanks @Rockylars). - Fixed a bug where if the app was defocused and focused back, it would reset Graphy's module active values (thanks @Rockylars). Spoiler: Changelog v1.4.1 - Introduced plenty of safety checks to avoid some null reference errors. - Possibly fixed the graphs bug when the Editor is defocused and focused back. - Code cleanup and refactoring. Spoiler: Changelog v1.4 - Updated the header comments in all scripts. - Added option to toggle active on start up (thanks @DarkMio). - Removed a leftover raycast script in the Graphy UI.Canvas (thanks @DarkMio). - Updated the shaders to use UnityObjectToClipPos() (thanks @DarkMio). - Bug-Fix: NullRef for EditorStyles.boldlabel (thanks @Flavelius) Spoiler: Changelog v1.3 - Added a second graph to the Audio module that shows the highest spectrum value. - Added option to Toggle Active and Mode, as well as setting a specific Preset from the API. - Fixed a bug that occured when Time.timeScale = 0 (thanks @xDavidLeon!). Spoiler: Changelog v1.2.2 - Improved the dB calculations, now the values are much more precise. Spoiler: Changelog v1.2.1 - Modified the default UI text values to more generic placeholders to increase clarity. - Small fixes in the audio module. Spoiler: Changelog v1.2 - MASSIVE reduction in garbage generation. From 8-10 KB every 2-3 seconds to just 200-300 bytes. Garbage generation right now is negligible. - Some code optimizations. Spoiler: Changelog v1.1 - New Feature: Added a modifiable MODE. If set to LIGHT it will reduce some features or maximum values (like graph resolution) but it will improve compatibility with older hardware. - Small performance optimizations. - Code refactoring. - Improved the vetical alpha fade-off effect in the graph to make it more visible for lower values. - Updated the "Customize Graphy" scene to account for these new changes. Spoiler: Changelog v1.0 - First major update! - Removed some leftover raycast targets from the Graphy UI to avoid interfering with users UI. - Added a Customization Scene that allows changing all the parameters in runtime to improve the user experience when testing new values. - Added a feature to rescale the background overlay of the Advanced Data module to the text with the highest width. - Made ALL parameters modifiable from code using the API. - Fixed a bug where sometimes the Graphy Manager would fail trying to retrieve the Audio Module. - Improved stabilty. Spoiler: Changelog v0.6 - Added a feature to choose if you want to apply a background overlay to Graphy, improving readability in cluttered scenes. - Optimized the access to Shader parameters when updating them, improving performance. Spoiler: Changelog v0.5.1 - Added a feature to choose if you want to keep Graphy alive through scene changes. Careful, if you activate it but Graphy is the child of another object, the root GameObject will also survive scene changes. Spoiler: Changelog v0.5.1 - Fixed a bug where setting Graphy as a child of another object would break the graphs. Spoiler: Changelog v0.5 - Initial release!