How do I implement a timer into this script that will record the total time the player has played.

Is there a way that I can implement a timer that records the total time a player has played the main game? Also could some one fix the code? I don’t know how to. Thanks.

var vSbarValue : float;
function OnGUI (){
	vSbarValue = GUI.VerticalScrollbar(Rect (887.5, 150, 100, 300), vSbarValue, 1.0, 10.0, 0.0);
//Font Size and Color Change
	var statsStyle = new GUIStyle("label");
		statsStyle.fontSize = 30;
	var buttonStyle = new GUIStyle("Button");
		buttonStyle.fontSize = 17.5;
	var statStyle = new GUIStyle("Label");
		statStyle.fontSize = 17.5;
	var twoStyle = new GUIStyle("Label");
		twoStyle.fontSize = 25;
	var fourStyle = new GUIStyle("Label");
		fourStyle.fontSize = 25;
	var pictureStyle = new GUIStyle("Label");
		pictureStyle.fontSize = 20;

	//Statistics Title GUI Design
		GUI.contentColor =;
		GUI.backgroundColor = Color.white;
		GUI.Label(Rect(450,100,250,100), "Statistics",statsStyle);
		GUI.Label(Rect(470,135,250,100), "Pictures",pictureStyle);

	//Statistics Sub-Title GUI Design
		GUI.Label(Rect(200,175,250,100), "High Scores for Two Choices:",statStyle);
		GUI.Label(Rect(600,175,250,100), "High Scores for Four Choices:",statStyle);

	//Two Choices GUI Design
		GUI.Label(Rect(175,200,250,100), "A - Z = ",twoStyle);
		GUI.Label(Rect(175,275,250,100), "Z - A = ",twoStyle);
		GUI.Label(Rect(175,350,250,100), "Random = ",twoStyle);

	//Four Choices GUI Design
		GUI.Label(Rect(575,200,250,100), "A - Z = ",fourStyle);
		GUI.Label(Rect(575,275,250,100), "Z - A = ",fourStyle);
		GUI.Label(Rect(575,350,250,100), "Random = ",fourStyle);

if(GUI.Button(Rect(150,100,150,30), "Back to Menu",buttonStyle)){
if(GUI.Button(Rect(750,100,150,30), "Next Page",buttonStyle)) {

float gameTime = 0;

void Update()
    gameTime += Time.deltaTime;
    Debug.Log("You have been playing for " + (int)gameTime + " seconds");

(int)gameTime will get you the elapsed time in seconds. Just gameTime will get you an exact float value. You can print the gameTime in your onGUI script and remove the Debug.Log message I made for the example.

The simplest method would be to simply record the start time and compare it to the current time.

private float startTime;

void HandleOnGameStarted()
    startTime = Time.time;

public float TotalGameTime
    get { return Time.time - startTime; }

In this way you’re not incrementing a counter every frame, and you can get the result any time you want.