Please, always remove previous Advanced FPS Counter version before updating! 1.5.4 - Fix null reference exceptions when using Input System and there is no Keyboard attached (thx strich) 1.5.3 - Fix Render Time counter didn't work with modern rendering pipelines (thx daklab) - Minimum Unity version requirement raised to 2019.3 1.5.2 - Fix legacy font usage in Unity 2022.2 and newer (thx game3dover) 1.5.1 - Fix deprecated API warning in Unity 2022.2 and 2023.1 1.5.0 - add Input System support starting from Unity 2019.1 (thx Jim Bachalo) 1.4.7 - fix possible recursion exception in some use scenarios (thx Gleb_Palchin) 1.4.6 - fix regression with Device Info counter could not show up in some cases (thx Stanislawe) - fix documentation a bit (thx Michael) 1.4.5 - make default -1 values more consistent and use regular coloring for them - update asmdef names to match guidelines - fix 0 average FPS on counter activation (thx Gleb_Palchin) 1.4.4 - fix labels anchoring when not using background effect (thx Seith) 1.4.3 - change reset average behavior so now it resets to current FPS instead of 0 (thx Jarryd) 1.4.2 - fix zero average samples behaviour (thx Jarryd) 1.4.1 - fix inspector null reference errors in Unity 2019.3 alpha - remove deprecated component from example 1.4.0 - remove ContentSizeFitter and HorizontalLayoutGroup when not used - improve Average FPS calculation performance - update project to Unity 2017.4 - add Assembly Definition files - remove some legacy code 1.3.9 - new Realtime FPS option added to let you hide FPS if necessary - improved FPSCounter section Inspector UI - refactor file names and structure - please remove previous version! - fix debug logs will not have rich text tags on actual devices 1.3.8 - project updated to Unity 5.4 - caching improved for raw counters values update code: * GC allocations reduced by ~7% * raw values update performance improved by ~20% - fixed prefab was disabled by default (be careful when updating) - all code usings re-organized to prevent ambiguity with third-party code - readme docs updated and now available online for all - minor inspector UI improvements - minor code refactoring - minor API docs fixes 1.3.7.0 - added new VRExampleScene (tested on GearVR) - explicitly stated MEM GFX works only in Development builds - few other minor changes in code and docs 1.3.6.0 - removed GC allocations when update interval changes - minor inspector UI improvements - minor docs improvements - some legacy code removed - other minor fixes 1.3.5.0 - added new MEM GFX counter to show graphics driver memory allocation * this feature requires Unity 2018 - added proper help url for the standard Help icon in inspector - fixed bug with instantiating in scene as a child of selected object - fixed conflicting hotkey 1.3.4.0 - now all Device Information rows has option for the new line - minor Inspector GUI improvements - minor refactorings 1.3.3.2 - improved compatibility with Unity 2017.1 1.3.3.1 - improved compatibility with Unity 5.6 - added workaround for the Unity 5.6 bug with OnEnable \ OnDisable anomaly 1.3.3.0 - new Render Time option for the FPS counter * Render Time Color and New Line settings * Optional automatic addition of the AFPSRenderRecorder to the main camera - reduced memory allocations count for each counter update - improved performance of the interval change for counters with interval - fixed auto-destroy for the AFPSCounter's game object - fixed incorrect MinMax FPS delay counting - improvements for better Unity 5.6 compatibility - significant refactorings - minor default settings tune (less alpha for background) - minor code cleanup 1.3.2.0 WARNING: path of the plugin changed, please remove previous version! - new AutoScale look & feel option - new background effect with color and padding (cheapest one) - new circle gesture to switch the counters on and off (mobile-friendly) - new option to control Pixel Perfect of own canvas - new Device Information counter readout: Model (e.g.: samsung SM-N9005) - new option to show FPS Min and Max readouts on two separate lines - now each counter has own font style option - now you may add custom text to any counter using ExtraText property - VeraMono font now automatically applied when adding plugin from the menu - now FPS and Memory counters are time scale independent on Unity 5.3+ - fixed rare issue where Min and Max FPS counters stuck at -1 value - fixed Unity 5.5 compatibility issues - fixed rare null reference exception when used with external canvas - prefab and default settings were tuned a bit - minor fixes and improvements 1.3.1.0 - added Shadow and Outline effects - added new Platform section to the DeviceInfo output * shows OS name and version * shows runtime platform - added optional output in MS for Average and MinMax FPS - added optional hotkey modifiers: Ctrl \ Cmd, Alt and Shift - added graphicsDeviceType output in DeviceInfo (for Unity 5.3.2 and higher) - changed keepAlive logic, now it applies on Start phase and works as expected * pass it to the AddToScene() to use it from code * applies to the root Game Object, allowing to use it on the nested one - added explicit System.* usage in some cases to avoid collisions with user code - added support for the Unity 5.4's SceneManager.sceneLoaded delegate - added option to move Average FPS on the new line - divided GPU info into separate optional groups in DeviceInfo counter - foldouts states in inspector are global now (thx AngryAnt!) - now most editor actions are undoable - improved example scene to let you tune more options - fixed and improved editor code which adds \ moves counter - fixed minor bugs - refactorings and minor code cleanup - fixes in docs 1.3.0.2 - fixed incorrect scale of the counters nested to the World Space Canvas 1.3.0.1 - added support for the external parent canvas (see readme for details) - relaxed incorrect placement detection rules - minor changes and improvements - added new World Space Canvas example prefab 1.3.0.0 - legacy GUILayer components replaced with uGUI components - new Advanced Settings section with Sorting Order setting - new Scale Factor setting at the Look & Feel section - GameObject's UI Layer is now default, but not a requirement - pixel-perfect positioning for all counters - fixed numerous typos in code, strings, docs, tooltips - Advanced FPS Counter component placed to the Component > Code Stage menu - cleaned Component menu from unnecessary components - improvements in editor code - numerous changes in API names, refer to updated API docs - inspector looks a little bit nicer now - code looks a little bit nicer now - project updated to the Unity 4.6.1 - other minor fixes in docs 1.2.8.2 - fixed exception when switching from initial background or disabled to normal operation mode - fixed exception when trying to enable initially disabled DeviceInfo in Background operation mode - removed some unnecessary code 1.2.8.1 - fixed initialization, now AFPSCounter should be fully configurable at Start() MonoBehaviour phase 1.2.8 - added new MinMax FPS prewarm delay to let you skip any initialization hiccups of the game - added currentFPSLevel property to let you easily get current FPS level (normal, warning, critical) - added onFPSLevelChange Action to let you react on FPS level change - fixed extra empty line in DeviceInfo counter if Unity can't detect RAM amount - Advanced FPS Counter Game Object creation in Editor now can be undone - Advanced FPS Counter Game Object now automatically selected after creation - minor refactorings - minor fixes in example scene - fixes in readme 1.2.7 - added optional Milliseconds output for FPS counter (turned on by default) - added new anchors: UpperCenter and LowerCenter - added approximate fillrate to the DeviceInfoCounter's GPU output - added graphics API to the DeviceInfoCounter's GPU output - added VeraMono monospace font (free for commercial use) and assigned it by default in prefab - memory counter's precise mode output optimizations - minor optimization in fps calculation code - few additions and fixes in the readme - other minor changes 1.2.6 - added "Move all to" editor-only functionality to move all counters to the specified anchor label - added new "Counters spacing" slider to control lines amount between different counters in single label - added new "On new line" option for MinMax FPS to let you place all FPS data on a single line - fixed NullReferenceException if MinMax FPS's "Reset now" was pressed not in the Play Mode - important changes in API: new static AddToScene(), Dispose() became static as well and Instance can be null now - placement strictness softened - third-party scripts are allowed on AFPSCounter's Game Object now - editor check for camera settings revisited - ignores depth now, should be more accurate - added few editor checks for correct placement - minor improvements of the inspector layout - Unity 5.0 fully supported (tested on Unity 5.0 beta 17) - project updated to Unity 4.5.5 - few fixes and additions in the docs - minor optimizations - minor fixes 1.2.5 - Added AverageFromSamples property for FPSCounter, read more in API docs - Operation Modes introduced! Read more in API docs and readme.pdf, short quotes from docs: * Disabled: removes labels and stops all internal processes except Hot Key listener * Background: removes labels keeping counters alive, may be useful for performance monitoring and benchmarking * Normal: shows labels and runs all internal processes as usual - MinMax FPS option: allows to see Minimum and Maximum FPS since game or scene start (depending on ResetOnLoad flag) - Hot Key listener is now Update-based instead of Coroutine-based to nail down extra allocations - fixed numerous bugs with how keepAlive mode works in both enabled and disabled state - Flash Player support dropped, some ugly code cleaned up - namespace CodeStage.AdvancedFPSCounter.Label was renamed to the CodeStage.AdvancedFPSCounter.Labels - AFPSCounter inspector layout changed a bit - AFPSCounter component placement strictness was reduced (now you may rename Game Object with AFPSCounter) - readme.pdf remastered from scratch (more detailed descriptions now) - some default values in example prefab were tuned - removed auto-hide of the Force FPS slider to let you tune desired FPS before enabling it - changes in demo scene to reflect new features - major refactorings, preparation for the custom counters (stay tuned! :p) - minor optimizations - docs cleanup, fixes and additions - price is raised a bit 1.2.0.2 - fixed typo in the namespace (thanks Daniele Giardini) 1.2.0.1 - removed UnityEditor import from AFPSCounter.cs 1.2.0 - Total reserved memory readout added to the Memory Counter - Allocated memory readout added to the Memory Counter - Heap Usage removed from Memory Counter (it required enabled Profiler) * plugin's features aren't affected by Profiler existence anymore - added additional checks for correct camera set up including its culling mask (while running in Editor) * now AFPSCounter should warn in all incorrect camera settings cases, please report if you don't see counter and have no any warnings in your console at the same time - optimal AFPSCounter settings are now saved as prefab - minor fixes and optimizations - improved API docs look and feel - minor additions and changes in API docs 1.1.1 - FPSCounter and other counters were renamed to avoid extra name conflicts with other scripts without namespaces. - Layer and Tag of main container are now applied to the labels thus plugin may be easily rendered with desired camera (using culling mask) - Added labels pixel offset tuning - Added labels line space tuning - Added labels font tuning - New inspector section - Look and feel, to organize visual tunings 1.1.0 - plugin name was changed to Advanced FPS Counter, as well, as main class name - be careful when updating - new easy ways to add plugin * via hot key CTRL+SHIFT+ALT+F (or CMD+SHIFT+ALT+F on Mac) * using menu item "GameObject->Create Other->Code Stage->Advanced FPS Counter" * using AFPSCounter.Instance from code (will spawn plugin instance in runtime) - incorrect plugin placement may be auto-corrected now - brand new counters layout system - now you may control counter's anchor (all four corners available) * you may stack all counters in one corner and they will be drawn in one GUIText label and use only one Draw Call * now stacked counters has fixed Y position and will not overlap on screen height change * text automatically aligns depending on selected anchor - new Hot Key option allows to pick any KeyCode to quickly enable / disable plugin in runtime - new option "Keep Alive" prevents plugin's Game Object destroying on new level (scene) load - new option Force FPS, allows you to try change current FPS in game, useful for physics testing for example - font size can be changed now for all counters - new "Precise" option for Memory Counter, allows to save system resources while disabled - Memory Counter now shows private memory of Flash Player plugin while running in Flash Player - new "Average FPS" option for FPS Counter allows to see average frames per second value since game or scene start (controlled by Reset On Load option) * and of course it may be easily reset from code - device info output is now more flexible and accurate - no more Update and FixedUpdate loops - counters values are updated in Coroutines or on demand from code now - smart "dirty" state detection for counters implemented - text changes only when counter value was changed or if - counters may be easily enabled and disabled both from code and editor now * you may use regular AFPSCounter component "enabled" property * you also may use AFPSCounter.Instance.enabled field at any time * AFPSCounter.Instance usage will create AFPSCounter automatically if it was not in scene * AFPSCounter may be disposed completely using AFPSCounter.Instance.Dispose() (and it still may be created again using AFPSCounter.Instance.*) * you may enable and disable separate counters using new toggles against every counter in inspector or from code - AFPS Counter now warns if it can't be drawn using additional check on awake phase (only in editor) - added readme.pdf - changed default colors - minor fixes * huge thanks goes to Daniele Giardini for feature requests and numerous feedback on plugin at all 1.0.0 - initial release