Discrete GameUpdate per Update

Hey there!
I’m wanting to have a fixed number of Updates in my game logic–specifically 60 updates per second.
It’s my understanding that MonoBehaviour.Update() is called as frequently as possible thus my plan is to just check elapsed time and update 60 times per second. But I’m running into some issues and I’m not sure where my code is wrong and/or where I’m misunderstanding how Unity updates.
using UnityEngine;
using System.Collections;

public class GameEngine : MonoBehaviour {

	public double lastFrameTime = 0.0f;
	public double targetFrameRate = 60f;
	public int testTimer = 0;

	// Use this for initialization
	void Start () {
		RivalMaker.Initialize();
	}
	
	// Update is called once per frame
	void Update () 
	{
		if(Time.unscaledTime >= lastFrameTime + (1f / targetFrameRate))
		{
			lastFrameTime = Time.unscaledTime;
			testTimer += 1;
			RivalMaker.Update ();
		}
	}

	
}

This is attached to an empty game object in my scene.
When targetFrameRate is less than ~60.3744, it seems to Update as I would like, but when I raise it above that, it jumps to something faster than 60fps.
Going faster than 60 fps isn’t my goal, so it doesn’t necessarily have to work higher than that, I just want to make sure my code is providing a consistent number of Updates to RivalMaker.Update() every second (unless it chugs, which is fine, that just means I need to improve the code).
So essentially my question is: Do you see any issues that would cause this to not provide targetFrameRate number of Updates to RivalMaker.Update per second?
Thank you.

probably fixing the framerate value manually or using fixedUpdate could help you…

Hey there! Thanks for the reply. Perhaps this is common knowledge, but I’ve found it difficult to find consistent information on this topic despite it being asked so frequently.
In any case, I found a solution–although my previous failures still puzzle me.

I use Application.targetFrameRate = 60; As well as using high quality settings with Vsync.
It was my understanding that Application.targetframerate was only for Rendering, but it’s both apparently? I’m sure someone could explain better–but I believe Update() is essentially tied to logic and draw updates. Setting it via Application.targetFrameRate worked perfectly and simply.