I just created a brand new unity project, added a terrain, left it alone. No textures, no editing at all. Then I added a FPSController. When I run it, the stats windows hovers around 65 to 77 fps.
I’m finding that a bit strange. I just installed a new motheboard, cpu 32 gigs of ram and an asus gforce 1080.
I prefer to run the FPS Display script rather than relying on the FPS shown in the stats window.
It’s part of the Standard Assets
\Assets\Standard Assets\Utility\FPScounter.cs
I’m getting a pretty significant difference between what the script is reporting vs. what the Stats window is showing.
What I did was put a canvas in my scene, added a Text component to the canvas then dropped the FPScounter.cs onto the Text component.
As was mentioned by one of the moderators on the link I posted:
“The stats fps in the Unity editor measures graphics drawing speed only (in milliseconds, also unfortunately gives the results in framerate, ). The fps script on the wiki (which is what 99% of people use) is accurate enough and measures the actual framerate of the game.”
Once you get the script running, don’t even look at the frame rate in the stats window anymore.
The script works by knowing every time your script’s Update function is called, Unity has finished the last frame. That is what Time.deltaTime is, the time it took to render the last frame.
Personally, when developing on the PC I’ve used the stats window to estimate the FPS on Android (on my particular PC, the stats window FPS of 1000+ gives good results on Android), but on builds to Android I use this asset to get an accurate number: Unity Asset Store - The Best Assets for Game Making
I’ve tested it with apps that count the FPS on Android and can confirm it’s really accurate.