• 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 /
This question was closed Jan 05, 2020 at 02:27 PM by Vinnihu for the following reason:

Problem is solved

avatar image
0
Question by Vinnihu · Jan 04, 2020 at 12:05 PM · c#movementmovetowardsvector3.movetowards

MoveTowards resets position

I want to move an object from his current position 1 unit along the y-axis like this:

  StartCoroutine(move(transform.position));
  
  IEnumerator move(Vector3 startPos)
  {
    transform.position = Vector3.MoveTowards(startPos, startPos + Vector3.up, walkSpeed);
    yield return new WaitForSeconds(3f);
  }

But when the function is recalled the object get's teleported back to the initial position and doesn't use it's new position as startPos for the movement. Also when I do...

  Vector3 endPos = transform.position;
  Debug.Log(startPos+ ":" + (endPos));

...Unity tells me, that the startPos is the same as the endPos after the movement, even tough the object clearly moved. Please help me, I've been struggling with this since 4 hours

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
0

Answer by IINovaII · Jan 04, 2020 at 03:23 PM

The line transform.position = Vector3.MoveTowards(startPos, startPos + Vector3.up, walkSpeed); gets called only 1 time in that setup. If you want that code to repeat itself every 3 seconds, you have to wrap it around a loop. Even after that you'll only notice it move one time because the startPos doesn't change after reached the destination. So, you'll have to replace startPos with transform.position since it updates its position upon movement. In the end, the code would look something like this.

 IEnumerator move()
     {
     while (true)
         {
             transform.position = Vector3.MoveTowards(transform.position, transform.position + Vector3.up, walkSpeed);
             yield return new WaitForSeconds(3f);
         }
     }

You can replace the condition in the while loop in however way you see fit in case you don't want the object to move up indefinitely.

-Nova

Comment
Add comment · Show 6 · 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 Vinnihu · Jan 04, 2020 at 04:45 PM 0
Share

alt text

It still doesn't work. As you can see in the gif, the object always returns to the first position when moveTowards gets recalled. Also, the object goes in the wrong direction, even though I wrote Vector3.up

ezgif-6-e17ef37b554c.gif (220.7 kB)
avatar image IINovaII Vinnihu · Jan 04, 2020 at 09:25 PM 0
Share

Hello, can you share the entire script containing the move function? I might get a better idea of where the problem lies. -Nova

avatar image Vinnihu IINovaII · Jan 04, 2020 at 10:44 PM 0
Share

So basicly I want to move the object along the tiles I created, and so that it always finds the right way. In the Update() function I check if the object is moving and when is$$anonymous$$oving returns false, the object should move to the next tile, but ins$$anonymous$$d it goes the same path again.

 void Update()
     {
         if (is$$anonymous$$oving == false)
         {
             StartCoroutine(move());
         }
     }

 IEnumerator move()
     {
         is$$anonymous$$oving = true;
 
             Vector3Int upperTile = Vector3Int.FloorToInt(transform.position) + Vector3Int.FloorToInt(Vector2.up);
             Vector3Int rightTile = Vector3Int.FloorToInt(transform.position) + Vector3Int.FloorToInt(Vector2.right);
             Vector3Int lowerTile = Vector3Int.FloorToInt(transform.position) + Vector3Int.FloorToInt(Vector2.down);
             Vector3Int leftTile = Vector3Int.FloorToInt(transform.position) + Vector3Int.FloorToInt(Vector2.left);
 
             if (tilemap.HasTile(upperTile) && tilemap.GetTile(upperTile).name == "Sidewalk")
             {
                 transform.position = Vector3.$$anonymous$$oveTowards(transform.position, transform.position + Vector3.up, walkSpeed);
             }
             else if (tilemap.HasTile(rightTile) && tilemap.GetTile(rightTile).name == "Sidewalk")
             {
                 transform.position = Vector3.$$anonymous$$oveTowards(transform.position, transform.position + Vector3.right, walkSpeed);
             }
             else if (tilemap.HasTile(leftTile) && tilemap.GetTile(leftTile).name == "Sidewalk")
             {
                 transform.position = Vector3.$$anonymous$$oveTowards(transform.position, transform.position + Vector3.left, walkSpeed);
             }
             else if (tilemap.HasTile(lowerTile) && tilemap.GetTile(lowerTile).name == "Sidewalk")
             {
                 transform.position = Vector3.$$anonymous$$oveTowards(transform.position, transform.position + Vector3.down, walkSpeed);
             }
             yield return new WaitForSeconds(3f);
 
             is$$anonymous$$oving = false;
     }    
Show more comments

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

769 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 avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image 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 to make object solid with Vector3.MoveTowards? 1 Answer

Using MoveTowards to move GameObject from starting point to mouse cursor 0 Answers

help with player movement 0 Answers

How to make 2 different actions for the same input? 2 Answers

Implementing a "flyer" game in with the old CardBoard Google sdk 2 Answers

  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges