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 RandomUser123 · Aug 16, 2014 at 10:31 PM · coroutineupdatebooleanif-statements

Coroutines and if statements

I have this code here:

 void speed()
     {
         //Debug.Log (LeftRightMovement.speed);
         if(GUICounters.speed == 1)
         {
             //Debug.Log (LeftRightMovement.speed);
             LeftRightMovement.speed = 60;
 
             StartCoroutine(timer ());
             //Debug.Log (LeftRightMovement.speed);
         }
     }
 
     IEnumerator timer()
     {
         Debug.Log (LeftRightMovement.speed);
         yield return new WaitForSeconds(5);
         LeftRightMovement.speed = 30;
     }

My players speed is currently 30, when LeftRightMovement.score reaches a certain point I would like to increase the speed to 60 for 5 seconds using the coroutine and then set the speed back to 30 but as it is the speed is constantly at 60.

I also tried wrapping it in a boolean as i think its because it runs every frame and my score is always at 1. This is what i tried:

 void speed()
     {
         if(ranOnce = false)
         {
             //Debug.Log (LeftRightMovement.speed);
             if(GUICounters.speed == 1)
             {
                 //Debug.Log (LeftRightMovement.speed);
                 LeftRightMovement.speed = 60;
 
                 StartCoroutine(timer ());
                 //Debug.Log (LeftRightMovement.speed);
             }
             ranOnce = true;
         }
 
     }

But i had no luck with that either, nothing comes out form the Debug.Log() then.

If anyone could point me in the right direction, that'd be great

Comment
Add comment · Show 3
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 tanoshimi · Aug 16, 2014 at 10:33 PM 0
Share

What calls speed() ?

avatar image RandomUser123 · Aug 16, 2014 at 10:33 PM 0
Share

the Update() function

avatar image Kiwasi · Aug 16, 2014 at 11:25 PM 0
Share

The bool method should work, as long a runOnce starts off as false.

1 Reply

· Add your reply
  • Sort: 
avatar image
2
Best Answer

Answer by Bunny83 · Aug 16, 2014 at 11:49 PM

Your boolean method would work if your condition would look like this:

     if(ranOnce == false)

Instead of

     if(ranOnce = false)


  • = assignment operator

  • == equals operator

Comment
Add comment · Show 2 · 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 Bunny83 · Aug 16, 2014 at 11:55 PM 0
Share

PS: since we don't know where and how often you call your "speed" method and on which object, there could be countless other things which might break your logic. For example if you destroy the GameObject that runs this coroutine, the coroutine will die silently.

You also should be more clear about what exactly doesn't work

avatar image RandomUser123 · Aug 17, 2014 at 12:18 AM 0
Share

Argh I never even noticed that, ill try it out first thing tomorrow. Thanks for the input bunny

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

24 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Making a level up button., 2 Answers

how to start coroutines in the update method? 3 Answers

How can I use a yeild during an udate? 1 Answer

Flash image while ammo is low - coroutines? 3 Answers

How to Update a GameObject coordinates to folow in realtime and don't lose performens or crushing Unity.[SOLVED] 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