i have this code, it find all gameobjects that are marked as a waypoint and adds it to a list/array.
When i run the code the gameobjects are arranged in a way that makes no sense, they are not arranged in the world this way or in the hierarchy this way.
i want to be able to sort this list, so Wp0 will be first and Wp7 will be last in order.
The question has been closed Jun 24 '12 at 08:32 PM by TheDarkVoid for the following reason:
The question is answered, right answer was accepted
After you grab all of the waypoints in FindWayPoints(), sort the WayPoints array by the waypoint's gameobject name.
Just to get you going, you can use Array.Sort -- check out MSDN
Try something like:
(I didn't test that - no guarantees on that compiling!)
However, Array.Sort and GameObject.FindGameObjectsWithTag are both very slow. Probably not something you want to be doing everytime you create a new NPC. I'd recommend considering switching over to creating a gameobject named something like "WaypointRegistry" that also has a "WaypointRegistry" script that implements a singleton -- that script would do the work once to maintain your sorted list of waypoints in the scene, and then provide static and centralized access to this list. Your creeps could simply call something like "Waypoints = WaypointRegistry.GetAllWaypoints();"
It also looks like you have a bug in your LateUpdate(), you probably meant to write "if(Target == null)" instead of assigning Target = null.
Hope this helped!