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 site navigation guide.
If you are a new user to Unity Answers, check out our FAQ for more information.
Make sure to check out our Knowledge Base for commonly asked Unity questions.
If you are a moderator, see our Moderator Guidelines page.
We are making improvements to UA, see the list of changes.
Answers and Comments
10 People are following this question.
NavMesh - fatal error during baking
Bake the NavMesh Question.
Editor tool/serialization crash on windows
IL2CPP Dictionary deserialization issue
Lighting Baking crashing on full scene