- Home /
Indexing tiles for pathfinding
So I've been working for a while trying to figure out how to highlight ground tiles to display where players can move to (i.e. if a tile is blue the player can move there) using Dijkstra's algorithm. I've watched a few videos and read tons of forums and they've all been a little helpful as far as understanding the theory of how to do it but extremely vague when it comes to actually implementing it. When I found a video (https://www.youtube.com/watch?v=ZJqBMKgd_es) showing how to do it, I'm unable to because MonoDevelop won't allow me to index gameobjects (the tiles that act like nodes) in a list. When I set the list medium to "Tiles" like he does in the video, I can't add the gameobjects because Monodevelop can't convert a gameObject to a "tile". I'm totally stuck on how to implement this function guys. Any help would be really appreciated. Thanks
Answer by NoseKills · Jun 03, 2015 at 04:54 AM
People might not have time to start watching a 55 min video hoping they'll see something relevant, so it would be a better option to attach the piece of code that is giving you the error.
Then again it seems you are having a very basic type mismatch. You probably have something like this in the code
public GameObject tilePrefab; //assigned in inspector
Tile[] tiles = new Tile[10];
...
tiles[0] = tilePrefab;
Like the error says, you can't put GameObjects in an array meant for Tile objects. In the video the guy has a Tile class that extends MonoBehaviour. That means hes attaching the Tile script to a GameObject. You have to get the Tile component from your GameObject with .GetComponent() and put those in your array.
Your answer
Follow this Question
Related Questions
Multiple Cars not working 1 Answer
Distribute terrain in zones 3 Answers
Specific 2D movement using Dijkstras Algorithm... 1 Answer
Understanding Dijkstra Application 2 Answers
Evade a Collider on Vector3.forward 3 Answers