Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by Hathi28 · Jul 05, 2013 at 02:03 PM · timertimer-scripttimers

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 = Color.black;
         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)){
     Application.LoadLevel("Menu");
 }
 if(GUI.Button(Rect(750,100,150,30), "Next Page",buttonStyle)) {
     Application.LoadLevel("Statistics2");
 }
     }
 
Comment
Add comment
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

2 Replies

· Add your reply
  • Sort: 
avatar image
0

Answer by Em3rgency · Jul 05, 2013 at 02:34 PM

 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.

Comment
Add comment · Show 5 · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image Hathi28 · Jul 05, 2013 at 03:03 PM 0
Share

Where would I put this in the code? Sorry I'm really new to this stuff.

avatar image Em3rgency · Jul 05, 2013 at 03:27 PM 0
Share

The float gameTime = 0 declaration would go right after your class declaration, where all the class variables are.

the void update() function and everything inside it can go anywhere, as long as its inside the class and not inside any other function.

And then, ins$$anonymous$$d of my Debug.Log, you use the gameTime variable where you need it to be shown. Like if you want to make a window with a clock, you use it inside the onGUI function.

avatar image Hathi28 · Jul 05, 2013 at 03:36 PM 0
Share

I'm getting an error on "float gameTime = 0;" saying "";" expected. Insert a semicolon at the end." and also at "gameTime += Time.deltaTime;" is getting an error saying "Expecting :, found +=". Am I doing something wrong?

avatar image Em3rgency · Jul 05, 2013 at 03:39 PM 0
Share

Yes, it seems you're missing the semicolon at declaration. Better yet, just post your whole code. Inside a code sample, of course.

avatar image Hathi28 · Jul 05, 2013 at 03:41 PM 0
Share
 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;
 
     float gameTime = 0;
 
     //Statistics Title GUI Design
         GUI.contentColor = Color.black;
         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 $$anonymous$$enu",buttonStyle)){
     Application.LoadLevel("$$anonymous$$enu");
 }
 if(GUI.Button(Rect(750,100,150,30), "Next Page",buttonStyle)) {
     Application.LoadLevel("Statistics2");
 }
     }
 {
     gameTime += Time.deltaTime;
 }
avatar image
0

Answer by iwaldrop · Jul 05, 2013 at 06:18 PM

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.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

17 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Unity 5 - Time counter Up script (millisecond precision) UI 1 Answer

How can I add a timer that will start when the game starts and stop when the game ends and records it? 1 Answer

How to make reverse countdown timer in unity? 1 Answer

Stop and Pause Timer 2 Answers

Countdown timer? 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges