- Home /
The question is answered, right answer was accepted
How to make a player move along a fixed route
Hi all
I am trying to learn on making some games, and therefore I am trying different things out. I have thought about how to make a player move a certain number of fields, along a specific route on the game field. The movement I am looking for is the same used in the "Mario Party" games (See youtube video here).
My problem is that I do not have a clue of how to start in this learning experience. I have seen some tutorials about tile grid navigation, but These tiles make the player walk in all directions and not in a specific path/route. What I also want to learn is how I can make the player move a random number of fields (like the players in Mario Party only moving the number of fields, which the dices has rolled).
If you know any good tutorials, demo projects or other kind of learning assets for this subject, I would like to hear from you all.
Answer by kschieck · Mar 21, 2014 at 04:02 PM
I define a path as a list of Vector3
positions then use this function to move towards the next point in the list
protected void moveTowards(Vector3 to)
{
Quaternion _lookRotation = Quaternion.LookRotation((to - transform.position).normalized);
transform.position += _lookRotation * Vector3.forward * Time.deltaTime * move_speed;
}
Then these coroutines move the object and automatically set the destination to the next point.
protected IEnumerator Move()
{
for ( ;; )
{
if (destination == new Vector3(-1f,-1f,-1f)) break; // end of path
moveTowards(destination);
yield return 0;
}
}
protected IEnumerator Path()
{
for ( ;; )
{
destination = ... // Next Point
if (destination == new Vector3(-1f,-1f,-1f)) break; // end of path
while (!closeEnough()) yield return 0;
}
}