- Home /
Grid-based movement: How to face forward
Folks,
My aim is to have a character move in a grid-based world. With some trial-and-error, I got it to move to a grid with a mouse click. What I am wondering is how to make the character actually face the direction (only four ways; South, North, East, West) that it is heading toward.
I would like to think this must have been implemented plenty of times before and was wondering if there's a sample code (preferably in C#) or an example that might be helpful.
Thanks in advance!
Answer by fafase · Jul 31, 2012 at 04:31 PM
When your NPC is moving you most probably assign a target he is moving towards. Use:
transform.LookaAt(target.position);
and your NPC will look towards the target. Change the parameter to any vector3to make it look anywhere else.
EDIT: I missed the 4 directions only part.
transform.LookaAt(Vector3.up);
transform.LookaAt(-Vector3.up);
transform.LookaAt(Vector3.left);
transform.LookaAt(Vector3.right);
Depending where you are heading you use one of them
Answer by DESTRUKTORR · Jul 31, 2012 at 04:38 PM
Assuming this is a square-grid, and not a hex grid, with only the cardinal directions available for movement, just make the parent object rotate to 0, 90, 180, or -90 (270 could also be used, in stead of -90), then move in that direction. Much simpler than making extra objects to be "faced."
Your answer
Follow this Question
Related Questions
How to move a character from the middle of one box to the other? 2 Answers
tranform.TransformDirection not effecting spawned object 2 Answers
Tracking HTC Vive Controller Motion Direction? 1 Answer
Need player to walk in random direction 2 Answers
I need help with some grid calculation for a digital board game. 0 Answers