Firstly I want to mention, that I'm making my first project ever in Unity engine so the issue might be quite silly. As far as I know Time.deltaTime and Time.fixedDeltaTime store the approximate time between frames (graphics and physics). I wanted to implement a simple fps counter to my game. Function is written below:
void FPS_Counter()
{
float frequency_physics = 1f/Time.fixedDeltaTime;
float frequency_graphics = 1f/Time.deltaTime;
fps.text = "Phys: " + frequency_physics.ToString("N0") + "\n" + "Graph: " + frequency_graphics.ToString("N0");
}
FPS_Counter() is called in Update(). The script always outputs values of 50[hz] for both fixed and "normal" delta times. It seems that frequency is locked on 50 fps. Is this a normal behaviour? Does Unity lock calling FixedUpdate() and update() at 50hz? If so, can I change this value somewhere to see how much fps can I really get?
There can be many reasons to why the FPS is locked to a spesific rate. The Time.deltaFixedTime variable however, is always locked to a spesific update value. By Default it is: 0.02 secs, between each fixed update.
If you want a FPS counter for debugging, i can give you a refrence to this: http://wiki.unity3d.com/index.php?title=FramesPerSecond
Reasons to why the framerate is locked, might be, as @UnholySheep said, Vsync, computer limits (although it would most likely bounce around) and some other reasons.
https://docs.unity3d.com/Manual/class-QualitySettings.html Here is a link, to where you can turn off VSync, if it shall turn out to be on.