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 /
This question was closed May 25, 2018 at 12:58 AM by bpears for the following reason:

The question is answered, right answer was accepted

avatar image
0
Question by bpears · Apr 10, 2015 at 01:51 AM · coroutineupdateloopframes

How to slow down large code?

Ive got a lot of code that Im trying to run in a coroutine function. I've tried placing yield wait for seconds at the ends of loops and that helps, but is there a way to just evenly pace out the code?

To be clear, I'm not just trying to slow the loops, but the execution of the entire code block over a variable amount of frames.

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

  • Sort: 
avatar image
1
Best Answer

Answer by KitoCode · Apr 10, 2015 at 02:19 AM

Coroutines are built to do what I believe you are asking, they work as if you wish to loop code or until a statement is true, then proceeds with the coroutine.

 IEnumerator YieldingPossibilities()
 {
     while (true) 
     {
         print("DoSomething Loop");
         yield return null;
     }        
 
     while (true) 
     {
         print("DoSomething Else Loop");
         yield return null;
     }
 }


The above code will only execute the while loop when it is true, make the while loop false, and it will then proceed to the next while loop.. Rinse and repeat. understand what I am getting at?

On the other hand, if you do not wish to user Co routines, I suggest delegates. Delegates found at this link might help you understand, and it might create a solution to your problem.

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 Owen-Reynolds · Apr 10, 2015 at 01:13 PM 1
Share

...and the idea is that there isn't a way to simply assign a time-slice for the the system to pause your code. You have to manually give up control until next frame with yield return null;.

With a huge loop, you might estimate that 20 times is enough work for one frame, so use if(i%20==19) yield return null;

IcarOtu: were you thinking the first loop used a break;? Otherwise it won't reach the second one.

Follow this Question

Answers Answers and Comments

19 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

Related Questions

void update working under conditions 1 Answer

How to call unity event once every time my object reach destination in Update()? 1 Answer

Update List Item 0 Answers

Best practice to change vertex color on a large amount of quads? 1 Answer

Coroutine in Extension Method 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