I have a game where units need to run around small spherical planetoids and I created an a star algorithm that uses waypoints placed all around the planet. The game runs fine when testing in the editor but crashes when I try to build it. The annoying thing is it will build every once in a while after I mess with different things but then only works for a couple builds before it starts crashing again. I wrote a custom class for the waypoints that is Serializable and each waypoint has an adjacency list of neighboring waypoints (I set this to SerializeField and it worked for a while). If anyone can explain why this is happening it would be greatly appreciated. More info can be provided on request.
Waypoint.cs: The script attached to each waypoint.
/// A node of the nav mesh.
public class Waypoint : MonoBehaviour
/// <summary>All the waypoint's neighbors.</summary>
public Waypoint wpList;
/// <summary>Distance to all the waypoint's neighbors.</summary>
public float distList;
/// Find the connections to the closets waypoints.
public void Bake(float castRadius, float checkRadius)
// temp list of adjecent waypoints
List<Waypoint> conWP = new List<Waypoint>();
List<float> conDist = new List<float>();
// run through all the waypoints
GameObject brothers = GameObject.FindGameObjectsWithTag("Waypoint");
foreach (GameObject next in brothers)
// stop if self
if (next == gameObject)
// raycast to next
RaycastHit rayInfo = Physics.SphereCastAll(transform.position, castRadius, next.transform.position-transform.position, checkRadius);
// sort by shortest distance
var orderedInfo =
from w in rayInfo
// run through all the objects the raycast hit
foreach (RaycastHit info in orderedInfo)
// if hit itself continue
if (info.collider.gameObject == gameObject)
// connected to the target object
if (info.collider.gameObject == next)
// set list
wpList = conWP.ToArray();
distList = conDist.ToArray();
} // End Bake
} // End Waypoint Class
Answer by yeagz7
Aug 21, 2013 at 08:25 PM
Solved this by instead of each waypoint keeping a gameobject reference to its neighbors it instead says their ID and looks it up in a table when it needs to get the reference.
Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.
The best place to ask and answer questions about development with Unity.
To help users navigate the site we have posted a user guide.
If you are a new user, check out our FAQ for more information.
If you are a moderator, see our Moderator Guidelines page.
We are making improvements to UA, see the list of changes.
For troubleshooting common problems with Unity 5.x Editor (including Win 10).
Answers and Comments
10 People are following this question.
NavMesh - fatal error during baking
Editor tool/serialization crash on windows
How to know if a navmesh is baked at runtime?
IL2CPP Dictionary deserialization issue