public void SetGrid(PhysicsGrid g, bool remoteOverride) { if (remoteOverride == false && GetAuthorized() == false) { return; //not authorized, and it is not a remote update } if (parentGrid != null && parentGrid.GetGridID() != (ushort)Utilities.ReservedObjectIDs.Unspecified && parentGrid.GetGridID() == g.GetGridID()) { //Debug.Log("No zone change needed"); return; } //if we have no parent, do not perform hierarchical safety check //or if it is a remote update, also skip hierarchical safety check if ((parentGrid == null && g != null) || remoteOverride) { parentGrid = g; transform.parent = parentGrid.transform; parentGrid.SendMessage("OnConfirmObjectEnter", this); } else { if (g != null) { parentGrid = g; while (parentGrid.Contains(this) == false) { Debug.Log(parentGrid.gameObject.name + " does not contain " + gameObject.name); parentGrid = manager.FindNextGrid(parentGrid); if (parentGrid == null) { Debug.Log("Ran out of grids!"); } } transform.parent = parentGrid.transform; parentGrid.SendMessage("OnConfirmObjectEnter", this); } } }