private static NavStatus UnsafeCreate(byte[] serializedMesh , bool safeStorage , out Navmesh resultMesh) { if (serializedMesh == null || serializedMesh.Length == 0) { resultMesh = null; return(NavStatus.Failure | NavStatus.InvalidParam); } IntPtr root = IntPtr.Zero; NavStatus status = NavmeshEx.dtnmBuildDTNavMeshFromRaw(serializedMesh , serializedMesh.Length , safeStorage , ref root); if (NavUtil.Succeeded(status)) { resultMesh = new Navmesh(root); } else { resultMesh = null; } return(status); }
private Navmesh(SerializationInfo info, StreamingContext context) : base(AllocType.External) { root = IntPtr.Zero; if (info.MemberCount != 1) { return; } byte[] data = (byte[])info.GetValue(DataKey, typeof(byte[])); NavmeshEx.dtnmBuildDTNavMeshFromRaw(data, data.Length, true, ref root); }