• 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 Xzapo · Apr 24, 2015 at 04:04 PM · c#positionfunctionfor-loop

IEnumerator Function

So I am currently using the IEnumerator function to pause a for loop, the for loop that contains a ball that should move to another game object. Currently from my print statements seems like the ball moves a little, but it's actually never reaching the object and I'm not sure why since I actually have never used IEnumerator so I'm not sure if this is apart of the issue.

 public IEnumerator CoUpdate(){ 
         float waitTime = 8;
     
         yield return new WaitForSeconds (waitTime);
 
             for (int i = 0; i <= 19; i++) {
                 //Finding Game Objects
                 numbers = GameObject.FindGameObjectsWithTag ("num");
                 ball = GameObject.FindGameObjectWithTag ("ball");
                 float step = speed * Time.deltaTime * 2;
 
                 //Picking the random cube
                 index = Random.Range (0, numbers.Length);
                 pickedNumber = numbers [index];
             
                 print ("number picked");
                 print (pickedNumber.name);
             
                 print ("numer postion");
                 print (pickedNumber.transform.position);
             
                 //Moving ball to cube
                 target = pickedNumber.transform;
                 ball.transform.position = Vector3.MoveTowards(transform.position, target.position, step);
             
                 //Checking balls position 
                 print ("ball Position");
                 print (ball.transform.position);
             
                 //Pause here
                 print ("PAUSE!");
                 yield return new WaitForSeconds (waitTime);
             
                 //Ball Returns to position
                 ball.transform.position = new Vector3 (0, 0, 0);
                 print ("ball reset");
                 print (ball.transform.position);
             }
 
     }
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
1

Answer by Glabrezu · Apr 24, 2015 at 06:12 PM

What's happening here is your ball moves slightly towards your coordinates for 1 frame, then it's 8 seconds of waiting idly, and then it returns to (0,0,0). Then the same thing happens again and again.

You need to place the "pause" and "ball reset" code inside an if statement that checks if your ball has reached your destination.

Also, why are you using a for loop and only iterating 19 times? It won't be enough. Use a while (bool), and let the bool be true until you're sure you've finished doing all you needed to do.

Comment
Add comment · 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

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.

Welcome to Unity Answers

The best place to ask and answer questions about development with Unity.

To help users navigate the site we have posted a site navigation guide.

If you are a new user to Unity Answers, check out our FAQ for more information.

Make sure to check out our Knowledge Base for commonly asked Unity questions.

If you are a moderator, see our Moderator Guidelines page.

We are making improvements to UA, see the list of changes.



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

Multiple Cars not working 1 Answer

Distribute terrain in zones 3 Answers

Position in Vector (C#) 1 Answer

Translate this statement from .js to C# 2 Answers

How to make Camera position Independent of its Rotation? 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