Пример #1
0
		public override void DeserializeSettings (GraphSerializationContext ctx) {
			base.DeserializeSettings(ctx);

			aspectRatio = ctx.reader.ReadSingle();
			rotation = ctx.DeserializeVector3();
			center = ctx.DeserializeVector3();
			unclampedSize = (Vector2)ctx.DeserializeVector3();
			nodeSize = ctx.reader.ReadSingle();
			collision.DeserializeSettings(ctx);
			maxClimb = ctx.reader.ReadSingle();
			maxClimbAxis = ctx.reader.ReadInt32();
			maxSlope = ctx.reader.ReadSingle();
			erodeIterations = ctx.reader.ReadInt32();
			erosionUseTags = ctx.reader.ReadBoolean();
			erosionFirstTag = ctx.reader.ReadInt32();
			autoLinkGrids = ctx.reader.ReadBoolean();
			neighbours = (NumNeighbours)ctx.reader.ReadInt32();
			cutCorners = ctx.reader.ReadBoolean();
			penaltyPosition = ctx.reader.ReadBoolean();
			penaltyPositionFactor = ctx.reader.ReadSingle();
			penaltyAngle = ctx.reader.ReadBoolean();
			penaltyAngleFactor = ctx.reader.ReadSingle();
			penaltyAnglePower = ctx.reader.ReadSingle();
			isometricAngle = ctx.reader.ReadSingle();
			uniformEdgeCosts = ctx.reader.ReadBoolean();
		}
Пример #2
0
		public override void DeserializeSettings ( GraphSerializationContext ctx ) {

			base.DeserializeSettings (ctx);

			characterRadius = ctx.reader.ReadSingle ();
			contourMaxError = ctx.reader.ReadSingle ();
			cellSize = ctx.reader.ReadSingle ();
			cellHeight = ctx.reader.ReadSingle ();
			walkableHeight = ctx.reader.ReadSingle ();
			maxSlope = ctx.reader.ReadSingle ();
			maxEdgeLength = ctx.reader.ReadSingle ();
			editorTileSize = ctx.reader.ReadInt32 ();
			tileSizeX = ctx.reader.ReadInt32 ();
			nearestSearchOnlyXZ = ctx.reader.ReadBoolean ();
			useTiles = ctx.reader.ReadBoolean ();
			relevantGraphSurfaceMode = (RelevantGraphSurfaceMode)ctx.reader.ReadInt32 ();
			rasterizeColliders = ctx.reader.ReadBoolean ();
			rasterizeMeshes = ctx.reader.ReadBoolean ();
			rasterizeTerrain = ctx.reader.ReadBoolean ();
			rasterizeTrees = ctx.reader.ReadBoolean ();
			colliderRasterizeDetail = ctx.reader.ReadSingle ();
			forcedBoundsCenter = ctx.DeserializeVector3 ();
			forcedBoundsSize = ctx.DeserializeVector3 ();
			mask = ctx.reader.ReadInt32 ();

			int count = ctx.reader.ReadInt32 ();
			tagMask = new List<string> (count);
			for (int i = 0; i < count; i++) {
				tagMask.Add (ctx.reader.ReadString());
			}

			showMeshOutline = ctx.reader.ReadBoolean ();
			showNodeConnections = ctx.reader.ReadBoolean ();
			terrainSampleSize = ctx.reader.ReadInt32 ();

			// These were originally forgotten but added in an upgrade
			// To keep backwards compatibility, they are only deserialized
			// If they exist in the streamed data
			walkableClimb = ctx.DeserializeFloat (walkableClimb);
			minRegionSize = ctx.DeserializeFloat (minRegionSize);

			// Make the world square if this value is not in the stream
			tileSizeZ = ctx.DeserializeInt (tileSizeX);
		}
Пример #3
0
        internal static void DeserializeReferences(Serialization.GraphSerializationContext ctx)
        {
            var count = ctx.reader.ReadInt32();

            for (var i = 0; i < count; i++)
            {
                var linkID         = ctx.reader.ReadUInt64();
                var startNode      = ctx.DeserializeNodeReference();
                var endNode        = ctx.DeserializeNodeReference();
                var connectedNode1 = ctx.DeserializeNodeReference();
                var connectedNode2 = ctx.DeserializeNodeReference();
                var clamped1       = ctx.DeserializeVector3();
                var clamped2       = ctx.DeserializeVector3();
                var postScanCalled = ctx.reader.ReadBoolean();

                GraphModifier link;
                if (usedIDs.TryGetValue(linkID, out link))
                {
                    var link2 = link as NodeLink2;
                    if (link2 != null)
                    {
                        if (startNode != null)
                        {
                            reference[startNode] = link2;
                        }
                        if (endNode != null)
                        {
                            reference[endNode] = link2;
                        }

                        // If any nodes happened to be registered right now
                        if (link2.startNode != null)
                        {
                            reference.Remove(link2.startNode);
                        }
                        if (link2.endNode != null)
                        {
                            reference.Remove(link2.endNode);
                        }

                        link2.startNode      = startNode as PointNode;
                        link2.endNode        = endNode as PointNode;
                        link2.connectedNode1 = connectedNode1;
                        link2.connectedNode2 = connectedNode2;
                        link2.postScanCalled = postScanCalled;
                        link2.clamped1       = clamped1;
                        link2.clamped2       = clamped2;
                    }
                    else
                    {
                        throw new System.Exception(
                                  "Tried to deserialize a NodeLink2 reference, but the link was not of the correct type or it has been destroyed.\nIf a NodeLink2 is included in serialized graph data, the same NodeLink2 component must be present in the scene when loading the graph data.");
                    }
                }
                else
                {
                    throw new System.Exception(
                              "Tried to deserialize a NodeLink2 reference, but the link could not be found in the scene.\nIf a NodeLink2 is included in serialized graph data, the same NodeLink2 component must be present in the scene when loading the graph data.");
                }
            }
        }
Пример #4
0
		public override void DeserializeSettings ( GraphSerializationContext ctx ) {

			base.DeserializeSettings (ctx);
			
			sourceMesh = ctx.DeserializeUnityObject () as Mesh;

			offset = ctx.DeserializeVector3 ();
			rotation = ctx.DeserializeVector3 ();
			scale = ctx.reader.ReadSingle();
			accurateNearestNode = ctx.reader.ReadBoolean();
		}
		public override void DeserializeSettings ( GraphSerializationContext ctx ) {
			
			base.DeserializeSettings (ctx);
			
			characterRadius = ctx.reader.ReadSingle ();
			contourMaxError = ctx.reader.ReadSingle ();
			cellSize = ctx.reader.ReadSingle ();
			cellHeight = ctx.reader.ReadSingle ();
			walkableHeight = ctx.reader.ReadSingle ();
			maxSlope = ctx.reader.ReadSingle ();
			maxEdgeLength = ctx.reader.ReadSingle ();
			editorTileSize = ctx.reader.ReadInt32 ();
			tileSizeX = ctx.reader.ReadInt32 ();
			nearestSearchOnlyXZ = ctx.reader.ReadBoolean ();
			useTiles = ctx.reader.ReadBoolean ();
			relevantGraphSurfaceMode = (RelevantGraphSurfaceMode)ctx.reader.ReadInt32 ();
			rasterizeColliders = ctx.reader.ReadBoolean ();
			rasterizeMeshes = ctx.reader.ReadBoolean ();
			rasterizeTerrain = ctx.reader.ReadBoolean ();
			rasterizeTrees = ctx.reader.ReadBoolean ();
			colliderRasterizeDetail = ctx.reader.ReadSingle ();
			forcedBoundsCenter = ctx.DeserializeVector3 ();
			forcedBoundsSize = ctx.DeserializeVector3 ();
			mask = ctx.reader.ReadInt32 ();

			int count = ctx.reader.ReadInt32 ();
			tagMask = new List<string> (count);
			for (int i = 0; i < count; i++) {
				tagMask.Add (ctx.reader.ReadString());
			}

			showMeshOutline = ctx.reader.ReadBoolean ();
			showNodeConnections = ctx.reader.ReadBoolean ();
			terrainSampleSize = ctx.reader.ReadInt32 ();
		}