Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 12 Next capture
2021 2022 2023
1 capture
12 Jun 22 - 12 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 /
  • Help Room /
avatar image
0
Question by esmith1234 · Jan 07, 2016 at 06:45 PM · javascriptclassescoroutines

Using Couroutines in another Class (Javascript)

Here's the first class

 public class Coroutiner extends MonoBehaviour 
 {

  public function Coroutiner()
  {
  }

 public function waiting(num: int)
 {
     yield WaitForSeconds(num);
 }

}

And here's the second class (which contains the first class):

 public Class ClassName
 {

  private var coroutinevar: Coroutiner;
  //Other Variables


  public function ConstructorName()
  {
              //Other Variables being initialized
              coroutinevar= ClassName.AddComponent(Coroutiner);
              Example();
   }

 public function Example()
 {
     Debug.Log("NO");
     yield coroutinevar.waiting(5);
     Debug.Log("YES");
 }
 //Other functions
 }

Basically, when I tried to use the function in a statement checking to see if a keyboard key was pressed, it didn't work at all. If I extend monobehaviour with the second class, it works, but I get a warning, plus I would like to know how to do it outside of a class, especially since I've been trying to figure this out on my own for a while.

If I use the function within a normal script it works fine (the yield objectname.waiting(integer)), but using it within a class just causes that segment to be skipped entirely.

Comment
Add comment · Show 4
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 incorrect · Jan 07, 2016 at 06:45 PM 0
Share

Are you sure you're doing it right? Not sure how it works in UnityScript when there are no IEnumeratorts, but in C# this will not work for sure.

avatar image esmith1234 incorrect · Jan 12, 2016 at 10:41 PM 0
Share

As far as I know, yes. I believe couroutines in java are basically written the same as normal functions.

avatar image JedBeryll · Jan 12, 2016 at 11:23 PM 0
Share

I THIN$$anonymous$$ whatever is in a function gets executed in one frame no matter what. A coroutine starts a new thread which can take several frames to complete. So if you want to wait for something the coroutine needs to execute the code that should come afterwards. (not sure about this though i don't use coroutines very often).

avatar image incorrect JedBeryll · Jan 13, 2016 at 12:10 AM 1
Share

Actually coroutines do not start new threads. The difference between normal functions and coroutines in Unity is that coroutines' execution can be stopped while normal functions should be completed in one frame.

0 Replies

· Add your reply
  • Sort: 

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

5 People are following this question.

avatar image avatar image avatar image avatar image avatar image

Related Questions

Collection was modified; enumeration operation may not compute 0 Answers

How do I access a variable/class from a C# file in a JS file? 1 Answer

UnityScript: BCE0048: Type 'ScriptFileName' does not support slicing. 0 Answers

Trying to use coroutines in order to use Mathf.Lerp, Lerp instantly jumps values 0 Answers

How to add a Type to a Class in Javascript? 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