private void Update() { if (Invalidate) { _supportRegnerateTime = Time.time; } if (Invalidate && Time.time - _meshGenerationTime > .05f) { _isSupportsInvalid = true; ResetMeshForTrackSegment(TrackSegment); TrackSegment.generateMesh(TrackEditHandler.Instance.TrackRide.meshGenerator); GenerateHeightMarkerTrack(TrackSegment); _meshGenerationTime = Time.time; Invalidate = false; } if (_isSupportsInvalid && Time.time - _supportRegnerateTime > .1f) { for (var x = 0; x < 5; x++) { ResetMeshForTrackSegment(TrackSegment); var localCrossTile = typeof(TrackSegment4).GetField("localCrossedTiles", BindingFlags.GetField | BindingFlags.Instance | BindingFlags.NonPublic); if (localCrossTile != null) { localCrossTile.SetValue(TrackSegment, null); } TrackSegment.generateMesh(TrackEditHandler.Instance.TrackRide.meshGenerator); } _isSupportsInvalid = false; } foreach (var curves in GetTrackCurves) { curves.Update(); } }