{"id":20328729,"url":"https://github.com/inborastudio/unity-advance-fps-counter","last_synced_at":"2026-01-21T19:35:44.504Z","repository":{"id":286896147,"uuid":"729675268","full_name":"InboraStudio/Unity-Advance-FPS-Counter","owner":"InboraStudio","description":"This is a advanced unity express counter that work with every unity supported version that shows system type Ram V Ram device name. and tons of things including professor Fps count.","archived":false,"fork":false,"pushed_at":"2024-06-21T15:36:08.000Z","size":159,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-08T22:29:50.231Z","etag":null,"topics":["assets","fps","fpscounter","opensoruce","unity","unity3d"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InboraStudio.png","metadata":{},"created_at":"2023-12-10T01:21:52.000Z","updated_at":"2024-09-24T02:39:32.000Z","dependencies_parsed_at":null,"dependency_job_id":"346ab97b-0ea3-4fb9-91d8-cb8896aee3a8","html_url":"https://github.com/InboraStudio/Unity-Advance-FPS-Counter","commit_stats":null,"previous_names":["inborastudio/unity-advance-fps-counter"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/InboraStudio/Unity-Advance-FPS-Counter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InboraStudio%2FUnity-Advance-FPS-Counter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InboraStudio%2FUnity-Advance-FPS-Counter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InboraStudio%2FUnity-Advance-FPS-Counter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InboraStudio%2FUnity-Advance-FPS-Counter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InboraStudio","download_url":"https://codeload.github.com/InboraStudio/Unity-Advance-FPS-Counter/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InboraStudio%2FUnity-Advance-FPS-Counter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28641276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T18:04:35.752Z","status":"ssl_error","status_checked_at":"2026-01-21T18:03:55.054Z","response_time":86,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["assets","fps","fpscounter","opensoruce","unity","unity3d"],"created_at":"2024-11-14T20:07:36.212Z","updated_at":"2026-01-21T19:35:44.498Z","avatar_url":"https://github.com/InboraStudio.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Unity-Advance-FPS-Counter\nThis is a advanced unity express counter that work with every unity supported version that shows system type Ram V Ram device name. and tons of things including professor Fps count In this you can even see how much your display size and what is your display frame rate. What is your display and your device name? What number of course processor have. How much v ram your graphic card haven't. What is your graphic card name? What is your graphic card? API version and everything you can see on your screen and just some clicks and it's 100 percent free.\n\n\n\n# Installation and setup\nIMPORTANT:\n   To avoid different compatibility issues and errors, always remove previous version from project Assets before updating.\n   As you import plugin, you have such options for adding Advanced FPS Counter to your scenes:\n- Drag Inbora Studio/AdvancedFPSCounter/Prefabs/Advanced FPS Counter prefab to the Scene Hierarchy.\n\n  Hint:\n\n- You also may find prefabs from the Examples/Prefabs folder useful for the VR or World Space setup.\n\n- Add from the Scene Hierarchy context menu (or Game Object menu):\n\n------------------------------------------------------------------------\n\n- Add AFPSCounter component to any existing Game Object using Add Component button or just drag dropping it from\n  Project Browser:\n\n\n  \"Add Component\" button \u003e Code Stage \u003e Advanced FPS Counter\n\n- Add to scene from code using AFPSCounter.AddToScene() API\n\nHint:\n- You need to add namespace CodeStage.AdvancedFPSCounter to usings in order to work with plugin from code.\n  Here is a simple example:\n\n``` cpp\n// place this line right at the beginning of your .cs file!\nusing CodeStage.AdvancedFPSCounter;\n\n// ...\nprivate void Start()\n{\n  // instantiates AFPSCounter in scene if it not exists\n  // with disabled keepAlive option\n  AFPSCounter.AddToScene(false);\n\n  // changes spacing between counters\n  AFPSCounter.Instance.CountersSpacing = 1;\n}\n```\n\nAFPSCounter draws all its data using Labels, which are the uGUI Texts placed within the automatically generated Canvas\nwith Screen Space - Overlay mode.\nThus, in order to see the counters, you do not need to perform any additional actions in most cases.\n\n\nIMPORTANT:\nIf you will place AFPSCounter somewhere inside the existing Canvas, auto-generated one will inherit options from the\nparent. This is useful when you wish to use plugin in some special environment, such as a World Canvas in the VR project.\n\n\nPlease refer to the Troubleshooting section below if you do not see the counters after performing initial setup.\n\n\n------------------------------------------------------------------------\n\n\n## Plugin features in-dept\n\n\nOperation Mode: controls how AFPSCounters runs.\n  - Disabled mode is used to remove all counters and stop all internal\n    processes except the global hotkey / gesture listener.\n  \n  - Normal mode should be used in most cases: counters are visible and\n    operate as intended.\n  \n  - Background mode allows reading all enabled counters data using\n    Scripting API without uGUI output thus avoiding any additional\n\nresources usage. Useful for performance / hardware stats, for hidden\nperformance monitoring and quality settings suggestion, etc.\n\n - Hot Key: customizable global hotkey to show / hide plugin using\n   Disabled / Normal Operation Mode switch. Does not affect Background\n   Operation Mode.\n   \n - Circle Gesture: complements Hot Key and does same job.\n   Touch screen / touchpad or hold left mouse button and make ~2\n   circles in any direction to switch Operation Mode.\n\n - Keep Alive: allows keeping Advanced FPS Counter’s Game Object on new\n   scene load (using DontDestroyOnLoad).\n\n------------------------------------------------------------------------\n\nIMPORTANT:\nThe topmost root Game Object will be kept alive if AFPSCounter is\nplaced on the nested Game Object.\n  - Force FPS: allows trying your game at specified frame rate, may help to\n    debug your game behavior / physics on slow devices; specified frame\n    rate is not guaranteed though (and may not work at all).\n\n------------------------------------------------------------------------\n\n# Look \u0026 Feel settings\n\n\n- Auto Scale: controls Canvas’s CanvasScaler uiScaleMode.\n    When disabled, uses ConstantPixelSize with specified Scale Factor.  \n    When enabled, uses ScaleWithScreen.\n\n- Labels Font: font used to render counters in Labels (uGUI Texts).\n    Monospace font with Bold style support usually looks great.\n\n- Font Size: controls size of the used Font.\n\n- Line Spacing: controls space between lines in single Label using uGUI Text\n    LineSpacing.\n\n- Counters Spacing: empty lines count between different counters in same\n    Label.\n\n- Padding Offset: offset for the Labels placement. Relative to the Anchor\n    position set at the per-counter settings and automatically changes sign\n    for the right and bottom Labels.\n\n- Pixel Perfect: controls own Canvas PixelPerfect property in overlay\n    modes.\n\n- Background: colored background effect with customizable Color and\n    Padding. Costs only 1 Draw Call. Fair deal for better visibility.\n\n- Shadow \u0026 Outline: text rendering effects with customizable Color and\n    Distance. These are resources-heavy (especially outline) so use with\n    caution on mobile devices.\n\n------------------------------------------------------------------------\n\n\n# Advanced settings\n\n- Sorting Order: controls Canvas’s sortingOrder property.\n   With higher value Canvas gets closer to the user while sorting with\n   other canvases.\n\n------------------------------------------------------------------------ \n\n# Counters settings\n\n# Common per-counter settings\n\nAll counters have same per-counter settings:\n\n- Interval: delay between counter updates, in seconds. Recommended\n     value lays in 0.5 - 1 secs range. Only updatable counters have this\n     setting.\n\n- Anchor: specifies counter screen placement within one of these Labels:\n     Upper Left, Upper Center, Upper Right\n     Lower Left, Lower Center, Lower Right\n     It allows covering all corners, top and bottom of the screen.\n     All counters with same anchor are drawn within one Label, thus, one\n     Label may contain several Counters. Labels content is refreshed (and\n     reassembled) only if any containing Counter is marked as dirty (has\n     changed value since last update). It allows avoiding unnecessary waste\n     of resources.\n\n- Color: counter text color. FPS Counter has more complex text coloration\n     with three coloration ranges - for normal, warning and critical value.\n\n- Style: counter text style with these values:\n     Normal, Bold, Italic, Bold and Italic\n\n Note: Not all fonts support these styles.\n\n------------------------------------------------------------------------\n\n# FPS (Frames Per Second) Counter\n\nHere are all Counter settings in same order as you see them in Inspector:\n\nCommon settings section, with more flexible Color Range selection for\nthree FPS value ranges: normal, warning and critical\n\n- Realtime FPS: shows actual FPS. In some cases, you might want to see\n   only Average FPS for example, so you can disable realtime FPS here.\n\n   - Milliseconds: shows an approximate time spent to process one frame.\n     Available for all FPS metrics.\n\n- Average FPS: shows an averaged FPS using accumulates samples.\n    Notable sub-settings are:\n\n   - Samples: controls how much of last FPS readouts to use for average\n     calculation. More samples - more slow and smooth average value\n     change. Use 0 value to collect all FPS samples since last Average FPS\n     reset (optimized calculation will be used in such case).\n\n   - Auto Reset: resets this FPS metric and cleans accumulated samples on\n     scene load.\n\n- MinMax FPS: shows minimum and maximum FPS.\n    Notable sub-settings are:\n\n   - Delay: \"pre-warm\" amount of Interval updates to wait before starting  \n     Min /Max registration. Allows skipping initialization FPS spikes.\n\n   - Auto Reset: resets this FPS metric on scene load.\n\n- Render Time: shows approximate time spent by Camera(s) to render last\n     frame. Requires usage of the helper AFPSRenderRecorder component.\n     Add it to Game Objects with Camera(s) you wish to measure render\n     time for, or use the Auto add option to let AFPSCounter automatically\n     add AFPSRenderRecorder component to the Game Object with \"Main\n     Camera\" tagged Camera if your scene has it.\n     Helper component will be re-added to the Main Camera’s Game Object\n     after scenes switch if Keep Alive option is used (see below).\n\nNote: does not take into account Image Effects and IMGUI.\n\n------------------------------------------------------------------------\n\n# Memory Counter\n\nHere are all Counter settings in same order as you see them in Inspector:\nCommon settings section.\n\n- Precise: allows to output memory values with additional accuracy using\n     float values instead of int ones. Requires some extra resources though,\n     thus try to avoid using it in conjunction with low update interval.\n\n- Total: shows total private memory amount, reserved by OS for the\n     application. Other applications cannot use this memory.\n     Applications may ask OS to reserve some amount of private memory,\n     which is usually a bit more than they really use at that moment. This\n     allows making new allocations faster if reserved memory chunk has\n     enough space for them.\n\n- Allocated: shows amount of private memory currently actually used by\n     application. In other words - how much memory all your textures,\n     sounds, etc. use.\n\n- Mono: shows amount of memory, allocated by the managed objects, such\n     as UnityEngine.Object (and everything derived from it), your classes,\n     etc. This memory is called managed because the lifecycle of objects is\n     managed by the runtime - it automatically allocates and frees memory\n     for the objects. Garbage Collector frees memory allocated by\n     unreferenced objects automatically so you do not need to manage\n     them yourself. IL2CPP builds have managed objects and Garbage\n     Collector as well.\n\n- GfxDriver: shows amount of the allocated memory for the graphics driver.\n     This feature requires Unity 2018 or newer and works in Development\n     builds or Editor only.\n\n------------------------------------------------------------------------\n\n# Device Information Counter\n\nThis Counter shows different information about current device and\nenvironment where your app or game is running.\n\nHere are all Counter settings in same order as you see them in Inspector:\n\nCommon settings section without interval setting since this counter\nupdates only once on start.\n\n- Platform: outputs Operating System name with version (if possible) and\n    runtime platform type.\n\n- CPU: outputs CPU model and cores count (including virtual cores from\n    Intel’s Hyper Threading).\n\n- GPU Model: outputs GPU model name.\n\n- GPU API: outputs graphics API name, version and type (if possible).\n\n- GPU Spec: outputs graphics shader model (if possible) and total VRAM (if\n    possible).\n\n- RAM: outputs total RAM on current device in Megs.\n\n- Screen: outputs resolution with refresh rate, current window size and\n    screen DPI (if possible).\n\n- Model: outputs device model (if possible). Mostly handy on the mobile\n    devices.\n\n------------------------------------------------------------------------\n\n# Tips\n\nAll plugin features and counters values are available from code through the public APIs. It allows to make a totally\ncustom UI for the counters - you may use any non-standard UI framework, output to charts and graphs, etc.\n  \n  - Please, take a look at the ExampleScene (at the Examples folder) to see how to work with plugin from code and check\n     how you can alter AFPSCounter’s settings and setup at runtime.\n\n  - While Unity didn’t introduce better way to save values set at runtime, you may easily tune counters (colors, intervals,\n     etc.) in Play mode and save adjusted values using these steps:\n          - enter Play mode\n          - tune AFPSCounter component settings in inspector\n          - right-click on the AFPSCounter component’s header and select \"Copy Component\"\n          - exit Play mode\n          - right-click on the AFPSCounter component’s header and select \"Paste Component Values\"\n\nThis technique works for any other components as well.\n  - To enable and disable whole AFPSCounter from code just use AFPSCounter.Instance.OperationMode property (switch\n\nit between AFPSCounterOperationMode.Disabled and AFPSCounterOperationMode.Normal).\n  - You may add any text to any counter using ExtraText API. For example:\n\nAFPSCounter.Instance.fpsCounter.ExtraText = \"\u003cb\u003eTemp:\u003c/b\u003e \u003ccolor=#A76ED1\u003e40\u003c/color\u003e\";\nCounter will be immediately updated after calling this API. To remove text, just pass null. Rich Text is supported.\n\n------------------------------------------------------------------------\n\n# Compatibility\n\nPlugin should work fine on any platform, including WebGL and VR and it was tested on these platforms:\n    \n   PC (Win, Mac, Linux, WebGL), iOS (incl. Google Cardboard), Android (incl. Gear VR, Google Cardboard, Vive Focus),\n   Windows Universal Platform.\n\nIn addition, customers reported it as working on these:\n   Wii U devkit (thx Black Lodge Games), Xbox One (thx Yaroslav Bakhvalov).\n\nPlease report if plugin does not work for you on some specific platform.\n\nAll features should work fine with any stripping level, IL2CPP runtime, .NET 4.6 compiler and Assembly Definitions.\n\n# Troubleshooting\n\n------------------------------------------------------------------------\n\n- I cannot see AFPSCounter on the screen\n\n  - Make sure you have added it to the current scene (either in Editor or from code).\n  - Make sure it is enabled and active.\n  - Check console for any error messages or warnings.\n  - Make sure your Canvas Sorting Order has value lower than AFPSCounter’s Sorting Order advanced setting value.\n  - If you are working with VR, place AFPSCounter inside an existing Canvas with World Space Render Mode to make it\n\nvisible in your VR device (see Examples/Prefabs/VR Example).\n\n- Something is wrong with the font I use for the counters\n   - Unity had a bug, which led to the exclusion of the font styles in case you are using different font files for the\n\ndifferent styles. Please try updating your Unity version to check if it fixes this issue for you.\n\n- I see GC allocations from AFPSCounter\n- Relatively low amount of GC allocations is expected in the Normal operation mode as it uses UGUI Text which do\n\nnot allow to use char[] instead of string to prevent GC allocations. You may use Background operation mode (which\ndoes not produce GC allocations while running) to make your own GC-free visualization.\n\n\n\n\n\n\n\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finborastudio%2Funity-advance-fps-counter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finborastudio%2Funity-advance-fps-counter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finborastudio%2Funity-advance-fps-counter/lists"}