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 /
avatar image
2
Question by varung1303 · Jun 05, 2018 at 05:16 AM · unityeditor

My unity freezes as i press the play button.

My unity freezes as i press the play button. The code is not in an infinite loop either. I'm just a beginner. Please help me out. As soon as i remove the code from the object it plays perfectly. When i apply it to the object it freezes when i press the play button.,Unity just freezes when I press the play button. Just a small code but i dont think there is an infinite loop. This is the code:

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 
 public class Rock : MonoBehaviour {
     [SerializeField] Vector3 topPosition;
     [SerializeField] Vector3 bottomPosotion;
 
 
     // Use this for initialization
     void Start () {
         StartCoroutine(move(bottomPosotion));
 
     }
 
     IEnumerator move(Vector3 target)
     {
         while (Mathf.Abs((target - transform.localPosition).y) > 0.20f) ;
         {
             Vector3 direction = target.y == topPosition.y ? Vector3.up : Vector3.down;
             transform.localPosition += direction * 4 * Time.deltaTime;
             yield return null;
         }
            print("Reached the Target");
         yield return new WaitForSeconds(0.5f);
         Vector3 newTarget = target.y == topPosition.y ? bottomPosotion : topPosition;
         StartCoroutine(move(newTarget));
 
     }  
 },

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

3 Replies

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

Answer by bobisgod234 · Jun 05, 2018 at 05:32 AM

Remove the semicolon that is on the end of the while statement:

 while (Mathf.Abs((target - transform.localPosition).y) > 0.20f) ; // <-- semicolon here is bad

becomes

 while (Mathf.Abs((target - transform.localPosition).y) > 0.20f) 
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 MuffinMan64 · Jun 05, 2018 at 07:23 AM 0
Share

I missed that. Good finding!

avatar image
0

Answer by MuffinMan64 · Jun 05, 2018 at 06:54 AM

Try commenting out StartCoroutine(move(newTarget)); at the end. That looks like an infinite loop, because it's calling itself.


If that doesn't work, the while loop may not be working as expected. For example, if the while loop condition is never true, that could be an infinite loop with the StartCoroutine(move(newTarget)); at the end.


To test this, you could have Debug.Log(Mathf.Abs((target - transform.localPosition).y) > 0.20f); before the while loop.

And Debug.Log(newTarget); before calling the StartCoroutine(move(newTarget));


Play around with the Debug.Log() and commenting things out, and let us know your findings!

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

Answer by varung1303 · Jun 05, 2018 at 03:53 PM

Thank you so much @bobisgod234

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.

Follow this Question

Answers Answers and Comments

84 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

Related Questions

How do I make a 2D cars face the direction it is moving like drifting,How do I make a 2D object face the direction it is moving like drifting 0 Answers

Animated Child Transform Moving Parent Transform - How to fix? 1 Answer

unity UI flicker on taking photo after win10 update on hololens 0 Answers

Build Problem in a project with editor scripts. [Fr & En] 0 Answers

Creating a Unity Tiny game in a mobile browser that reads phone rotation/tilting (accelerometer) as an input 0 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