Too much FPS, is there a cutoff limit?

Hey guys, I know this is a noobish question. But how come when I hit the 100 FPS (Frames Per Second) mark my game acts as if its as slow as 30 Frames a Second.

I’m assuming it works the same way as a movie, the more frames a second the more of a Slow Motion fluid like motion, which I understand.

But I’ve seen people player games with WAY more Frames Per Second and it just play as if it were at 60.

Is there a way to cap off the Frames Per Second?
Such as still show the 100 FPS but work as if it was at 60. Because it confuses me sometimes thinking I have to much stuff on levels, etc.

Thanks guys.

If this solely happens with the game you developed then you likely misused the update functions. Look into Time.deltatime and FixedUpdate to make actions/movements framerate independent.

The amount of frames someone can feel depends on the monitors refresh rate.
The refresh rate on 90% of the screens is 59-60 so even if you have 1.0000.0000 FPS you will still feel like it is running on 60 FPS.Now there are monitors that can go to 120 FPS(gaming monitors) and there you can feel the extra FPS.

using UnityEngine;
using System.Collections;
// REQUIRED COMPONENTS TO WORK!
[RequireComponent(typeof (Animator))]

public class Controller : MonoBehaviour {

	//private CapsuleCollider col; // This is the Collider for Player.
	private Animator anim;	// This is the Animator for Player.
	public float Speed = 5.0f;
	public float TurnSpeed = 5.0f;
	public float jumpHeight = 10.0f;
	public bool canJump;

	// Use this for initialization
	void Start () {
	anim = gameObject.GetComponent<Animator>();
	}
	
	// Update is called once per frame
	void Update () {


		if (Input.GetKey (KeyCode.W)) {
				transform.Translate (Vector3.forward * Speed * Time.deltaTime);
				anim.SetFloat ("Speed", 1f);
			} else {
				anim.SetFloat ("Speed", 0f);
			}
	    if (Input.GetKey (KeyCode.S)){
				transform.Translate (Vector3.back * Speed * Time.deltaTime);
				anim.SetFloat ("WalkBack", -1f);
			} else {
				anim.SetFloat ("WalkBack", 0f);
			}
		if(Input.GetKey (KeyCode.A)){
				transform.Rotate (0,-5,0);
			}
		if(Input.GetKey (KeyCode.D)){
				transform.Rotate (0,5,0);
			}
		}


	void FixedUpdate(){

				if (Input.GetKeyDown (KeyCode.Space) && canJump == true) {
						if (canJump) {
				anim.SetBool ("Jump", true);
				transform.rigidbody.AddForce (Vector3.up * jumpHeight);
				Physics.gravity = new Vector3 (0, -20, 0);

		}
	}
  }
	void OnCollisionEnter(Collision col){
		if (col.gameObject.tag == "Map") {
			anim.SetBool ("Jump", false);
		}
	}
}

And here is my trigger script -

using UnityEngine;
using System.Collections;

public class ObjectDetection : MonoBehaviour {
	// This accesses the Players Controller.
	public Controller controller;
	
    // This script detects if the player is within a certain height from the tag
	// of "Map"  if map is triggered then allow the jumping to true
	// otherwise can not jump (PREVENTS INFINITE JUMPING)

	void OnTriggerEnter(Collider col){
		if (col.gameObject.tag == "Map") {
			Debug.Log ("Object Detected");
			controller.canJump = true;
			}
		}
	void OnTriggerExit(Collider col){
		if (col.gameObject.tag == "Map") {
			Debug.Log ("Object no longer detected");
			controller.canJump = false;
	}
	}
}