Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
2 captures
12 Jun 22 - 14 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 kamal225 · Jun 24, 2017 at 02:47 PM · c#coroutineyield waitforseconds

Coroutines /WaitForSecond ain't working

i applied the coroutine to my code but i found that my code after ( yield return new WaitForSeconds(); ) isn't working So i created a simple croutine got only print functions to test how it works

here it is :

 void OnTriggerEnter2D (Collider2D x)
 
 {
     Debug.Log("OnTriggerEnter2D has been called");
 
     if (x.gameObject.tag == "Player") {
         Debug.Log("gameObject.tag = Player");
         StartCoroutine (speedUp());
         Debug.Log("Coroutine started");
     }
 }
 IEnumerator speedUp(){
 print ("message delayed for 3 sec");
 yield return new WaitForSeconds (3f);
 print("hello world");
 

it should after 3 seconds display hello world , unfortunately it is not showing hello world also for the test purpose i tried to set different values to WaitForSeconds i tried 0 and it worked but for sure there is no delay i tried 0.003 it worked but also there is no noticeable delay i checked the time manager and tried different values but nothing worked i tried WaitForSecondsRealime() it ain't working

also i tried to test the same coroutine in a new project and it worked fine as i want debug.log(" Hello world"); delayed 3 seconds exactly

Comment
Add comment · Show 2
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 sleepandpancakes · Jun 24, 2017 at 03:10 PM 0
Share

Are you sure the object that is calling the coroutine isn't being destroyed?

avatar image pako · Jun 24, 2017 at 11:14 PM 0
Share

@karmal225 there's nothing wrong with the code you are showing. In other words, the code you show does not explain the problem you are having.

This is quite common actually. You think the problem is there, but it's somewhere else.

As @sleepandpancakes says in his comment, it is very likely that the object calling the coroutine is getting destroyed, OR the object containing the coroutine is getting destroyed.

But this is just guesswork. If you don't post additional information, I doubt very much that you'll be able to get much more help.

2 Replies

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

Answer by Bunny83 · Jun 25, 2017 at 01:03 AM

The problem is that you either destroy your game object where that script is attached to, or you deactivate the game object. In both cases you will cancel the coroutines which run on that script instance. A coroutine is always bound to the script instance which you used for your StartCoroutine call.

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 kamal225 · Jun 25, 2017 at 05:59 PM 0
Share

Exactly thats what i found there is another trigger object destroy object when it enters so the coroutine doesn't resume because the game object destroyed Thank you

avatar image
-1

Answer by Nixmortem · Jun 24, 2017 at 08:26 PM

Whenever I use an IEnumerator I have to put what I actually want to happen in a different function and call it from the IEnumerator. Like this:

  void OnTriggerEnter2D (Collider2D x)
  
  {
      Debug.Log("OnTriggerEnter2D has been called");
  
      if (x.gameObject.tag == "Player") {
          Debug.Log("gameObject.tag = Player");
          print ("message delayed for 3 sec");
          StartCoroutine (speedUp());
          Debug.Log("Coroutine started");
      }
  }
 
 private void PrintMessage(){
          print("hello world");
 }
 
  IEnumerator speedUp(){
          while(true){
                  PrintMessage();
                  yield return new WaitForSeconds(3);
 }
 

That's how I normally use it for my Idle games that rely on Coroutines heavily. Hopefully this helps you out! :)

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 pako · Jun 24, 2017 at 11:05 PM 1
Share

@Nixmortem it's not necessary to put code in a different function. It works quite well to put it inline inside the IEnumerator. In other words this is not the problem here.

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

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

Related Questions

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

IEnumerator's did not read "bool" after yield return new WaitForSeconds. 1 Answer

Reset WaitForSeconds Coroutine 1 Answer

Custom Yield Instruction for FixedUpdate frames 3 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