• 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 Oct 10, 2017 at 01:30 AM by BorisOZ for the following reason:

The question is answered, right answer was accepted

avatar image
0
Question by BorisOZ · Oct 09, 2017 at 11:31 AM · c#movementrandom

How to stop MoveTowards teleporting

I am trying to make a zombie walk around randomly when it doesn't sense the player, but for some reason it is teleporting instead of walking smoothly. I have tried using Lerp but that seems to crash my Unity. The first movement works fine just the second one in the while loop does not work. This is the code I have currently:

 void Update () {
     // Find XY of player
     playerPos = new Vector2 (player.transform.position.x, player.transform.position.y);
     // If player is in vision then follow player
     if (playerInRange == true) {
         transform.position = Vector2.MoveTowards (transform.position, playerPos, speed * Time.deltaTime);
     } 
     // Else move randomly
     else { 
         if (randomTrue) {
             StartCoroutine (delay ());
             Debug.Log("delayDone");
         }
     }

     }
 IEnumerator delay () {
     randomTrue = false;
     // Find random location near zombie
     randomMovement = new Vector2 (transform.position.x + Random.Range(-4.0f,4.0f), transform.position.y + Random.Range(-4.0f,4.0f));
     // While zombie is not at chosen location move towards location
     while (transform.position.x != randomMovement.x && transform.position.y != randomMovement.y){
         transform.position = Vector2.MoveTowards (transform.position, randomMovement, speed * Time.deltaTime);
     }
     Debug.Log ("startWait");
     // Delay between random movements
     yield return new WaitForSeconds (Random.Range(2.0f, 7.0f));
     Debug.Log ("endWait");
     randomTrue = true;
 }

Any help would be appreciated, thank you.

Comment
Add comment · Show 2
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 FortisVenaliter · Oct 09, 2017 at 07:07 PM 0
Share

What's the value of 'speed'?

avatar image BorisOZ FortisVenaliter · Oct 09, 2017 at 11:16 PM 0
Share

3, and it works nicely for the first $$anonymous$$oveTowards, just not the second.

1 Reply

  • Sort: 
avatar image
1

Answer by kingartur3 · Oct 10, 2017 at 12:47 AM

Not sure if correct, but try to change this loop:

 while (transform.position.x != randomMovement.x && transform.position.y != randomMovement.y){
          transform.position = Vector2.MoveTowards (transform.position, randomMovement, speed * Time.deltaTime);
      }

Adding a Wait:

 while (transform.position.x != randomMovement.x && transform.position.y != randomMovement.y){
     transform.position = Vector2.MoveTowards (transform.position, randomMovement, speed * Time.deltaTime);
     yield return new WaitForSeconds (0.5f);
 }

Maybe change the 0.5f if it works but it's jerky.

Comment
Add comment · Show 2 · 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 BorisOZ · Oct 10, 2017 at 01:30 AM 0
Share

This worked, thanks. I changed the 0.5f to 0.008333f so that it tries to move every 1/2 a tick which stopped any jerking. When I put it to move every 1 tick there was still some visible jerking.

avatar image Bunny83 BorisOZ · Oct 10, 2017 at 03:31 AM 1
Share

Don't use WaitForSeconds in this case. Just use yield return null; ins$$anonymous$$d. Time.deltaTime only makes sense when you actually use it every frame.

btw: WaitForSeconds can't be faster than the framerate. If you wait 0.00000001 seconds it will still wait at least one frame. You can't wait "half" a frame.

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

416 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 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 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 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 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

Making a bubble level (not a game but work tool) 1 Answer

How to create 2D random movement? 1 Answer

Enemy moves randomly within a area. 1 Answer

Multiple Cars not working 1 Answer

2d obstacle moving up and down question 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