public override void SerializeSettings ( GraphSerializationContext ctx ) {

			base.SerializeSettings (ctx);
			ctx.writer.Write (characterRadius);
			ctx.writer.Write (contourMaxError);
			ctx.writer.Write (cellSize);
			ctx.writer.Write (cellHeight);
			ctx.writer.Write (walkableHeight);
			ctx.writer.Write (maxSlope);
			ctx.writer.Write (maxEdgeLength);
			ctx.writer.Write (editorTileSize);
			ctx.writer.Write (tileSizeX);
			ctx.writer.Write (nearestSearchOnlyXZ);
			ctx.writer.Write (useTiles);
			ctx.writer.Write ((int)relevantGraphSurfaceMode);
			ctx.writer.Write (rasterizeColliders);
			ctx.writer.Write (rasterizeMeshes);
			ctx.writer.Write (rasterizeTerrain);
			ctx.writer.Write (rasterizeTrees);
			ctx.writer.Write (colliderRasterizeDetail);
			ctx.SerializeVector3 (forcedBoundsCenter);
			ctx.SerializeVector3 (forcedBoundsSize);
			ctx.writer.Write (mask);
			ctx.writer.Write (tagMask.Count);
			for (int i = 0; i < tagMask.Count; i++) {
				ctx.writer.Write (tagMask[i]);
			}
			ctx.writer.Write (showMeshOutline);
			ctx.writer.Write (showNodeConnections);
			ctx.writer.Write (terrainSampleSize);

			ctx.writer.Write (walkableClimb);
			ctx.writer.Write (minRegionSize);
			ctx.writer.Write (tileSizeZ);
		}
		public override void SerializeSettings ( GraphSerializationContext ctx ) {

			base.SerializeSettings (ctx);
			ctx.writer.Write (aspectRatio);
			ctx.SerializeVector3 (rotation);
			ctx.SerializeVector3 (center);
			ctx.SerializeVector3 ((Vector3)unclampedSize);
			ctx.writer.Write (nodeSize);
			// collision
			collision.SerializeSettings (ctx);

			ctx.writer.Write (maxClimb);
			ctx.writer.Write (maxClimbAxis);
			ctx.writer.Write (maxSlope);
			ctx.writer.Write (erodeIterations);
			ctx.writer.Write (erosionUseTags);
			ctx.writer.Write (erosionFirstTag);
			ctx.writer.Write (autoLinkGrids);
			ctx.writer.Write ((int)neighbours);
			ctx.writer.Write (cutCorners);
			ctx.writer.Write (penaltyPosition);
			ctx.writer.Write (penaltyPositionFactor);
			ctx.writer.Write (penaltyAngle);
			ctx.writer.Write (penaltyAngleFactor);
			ctx.writer.Write (penaltyAnglePower);
			ctx.writer.Write (isometricAngle);
			ctx.writer.Write (uniformEdgeCosts);
			ctx.writer.Write (useJumpPointSearch);
		}
		public override void SerializeSettings ( GraphSerializationContext ctx ) {
			base.SerializeSettings (ctx);

			ctx.SerializeUnityObject ( sourceMesh );

			ctx.SerializeVector3 (offset);
			ctx.SerializeVector3 (rotation);

			ctx.writer.Write(scale);
			ctx.writer.Write(accurateNearestNode);
		}