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
1
Question by Morgan · May 06, 2015 at 02:13 AM · javascriptcoroutineyieldwaitforseconds

yield works, but yield WaitForSeconds does not?

I trigger the following UnityScript function once when my game pauses (timeScale zero).

 function animatePie( pieStart : float, pieEnd : float ) {
     for (var f = pieStart; f >= pieEnd; f -= .0333) {
         upgradePie.GetComponent(UnityEngine.UI.Image).fillAmount = f;
         Debug.Log("TEST");
         yield WaitForSeconds(.0333);
     }
 }

But for some reason it runs only once: "TEST" is only output a single time. It doesn't seem to matter what value I put in WaitForSeconds, the loop never cycles.

However, if I take out the WaitForSeconds and use yield alone, all is well: "TEST" outputs multiple times (and the fillAmount animates nicely).

But yield alone doesn't give me control over the speed of the animation, so it will vary per device. (Nor can I handle that with Time.deltaTime, since the game is paused.)

Why would yield fail to execute when I use WaitForSeconds?

Thanks for any help recognizing my mental block!

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
2
Best Answer

Answer by Eric5h5 · May 06, 2015 at 03:16 AM

WaitForSeconds is scaled by Time.timeScale, so it won't work if you set the timeScale to 0, which I assume is what you mean when you say "the game is paused".

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 Morgan · May 06, 2015 at 04:08 PM 0
Share

Thanks! That's what I would have first guessed, but I happened to run into bad info on here somewhere, saying that WaitForSeconds was independent of timeScale.

I'll create my own deltaTime using the system clock. I assume that must be the preferred method for animating a menu while the game action is paused. (Would be neat if there was something like "Time.HiddenDeltaTime" to access the delta that still goes on while frame Updates are called during timeScale 0.)

avatar image Bunny83 · May 06, 2015 at 04:32 PM 1
Share

@$$anonymous$$organ:
You mean something like Time.unscaledDeltaTime?

avatar image Morgan · May 06, 2015 at 05:04 PM 0
Share

Excellent, yes!

Weird--I've found so many discussions and solutions for this situation, but never a mention of the most direct approach!

avatar image Eric5h5 · May 06, 2015 at 06:32 PM 1
Share

It wasn't added until 4.5, so none of the older discussions would include it.

avatar image Morgan · May 06, 2015 at 06:54 PM 0
Share

Then I won't feel as bad about not noticing it :)

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

20 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

Related Questions

Waypoint / Yield help 1 Answer

Stuck while solving a Coroutine problem 0 Answers

Wait For Seconds to Load level C# 2 Answers

Create a 10 second delay using WaitForSeconds 2 Answers

Unityscript Coroutine Not Running When Called 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