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 TicTac · Apr 21, 2013 at 09:35 PM · updatescoreresetaddsubtract

Problem: Adding and Subtracting score

When I call my add or take score function it works but only on the second pass. The first time it is called it doesn't add the score. EG. I run my game, the ball goes out of play for the first time the score is not added or subtracted however the second time, it works correctly added or subtracted.

The problem I had originally was that my playerScore ++/-- was in function update so whenever the ball went out of play it would just keep adding to the score until the ball was within the boundary.

 #pragma strict
 
 var hasreset = false;
 var cSpeed:float = 10.0;
 var sFactor:float = 10.0;
 static var playerScore:int = 0;

 
 function Start () 
 {
     playerScore = 0;
     rigidbody.AddForce(Random.Range(-10,10),0,0);
 }
 
 function resetball ()
 {    
     yield WaitForSeconds(1.0);
     GameObject.FindWithTag("paddle").transform.position.x = 0;
     GameObject.FindWithTag("paddle2").transform.position.x = 0;
     transform.position.x = 0;
     transform.position.y = 0;    
     hasreset = true;
 }
 function takescore ()
 {
     yield WaitForSeconds (1.0);
     playerScore --;
 }
 function addscore ()
 {
     yield WaitForSeconds (1.0);
     playerScore ++;
 }
 function Update () 
 {
     //this has something to do with smoothing
     var cvel = rigidbody.velocity;
     var tvel = cvel.normalized * cSpeed;
     rigidbody.velocity = Vector3.Lerp(cvel,tvel,Time.deltaTime * sFactor);
     
     //checking bounds for score and reset
     if(transform.position.y <-5.67)
     {        
         resetball();
         if(hasreset == true)
         {
             takescore();
         }
         hasreset = false;
 
     }
     if(transform.position.y >5.67)
     {
         resetball();
         if(hasreset == true)
         {
             addscore();
         }
         hasreset = false;
     }
 }
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

1 Reply

· Add your reply
  • Sort: 
avatar image
0

Answer by whydoidoit · Apr 21, 2013 at 09:38 PM

The first time through hasreset is still false because resetball waits one second before setting it, however the line directly after resetball executes immediately.

You might get what you want by putting all of that in a function:

   function ResetAndScore()
   {
         yield resetball();
         if(hasreset)
             addScore();
         hasreset = false;

   }
Comment
Add comment · Show 1 · 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 TicTac · Apr 22, 2013 at 12:04 AM 0
Share

I fixed it by adding hasreset = true; too the function start(). Thanks for the reply anyway, I realized my wrong doing after you mentioned that hasreset was still false on first pass!

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

12 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

Related Questions

Firebase - Unity Add/Push on Database 2 Answers

reset Line Renderer every second 0 Answers

Setting the value of a var to the value of another 1 Answer

Scripts won't automatically update, always need to 'reset' them in the inspector for update 11 Answers

Add score when enemy is killed? 2 Answers


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