public static void FinalizeRoads() { bool destroyTerrainScript = true; if (EditorUtility.DisplayDialog("Build EasyRoads3D Objects", "This process includes destroying all EasyRoads3D control objects. Did you make a backup of the Scene? Do you want to continue?\n\nDepending on the number of EasyRoads3D objects in the Scene and used side objects, this process may take a while. Please be patient. ", "Yes", "No")) { RoadObjectScript[] scripts = (RoadObjectScript[])FindObjectsOfType(typeof(RoadObjectScript)); foreach (RoadObjectScript script in scripts) { bool renderflag = true; bool renderAlreadyDone = false; int num = 0; if (!script.displayRoad) { num = EditorUtility.DisplayDialogComplex("Disabled EasyRoads3D Object Detected:", script.gameObject.name + " is currently not displayed.\n\nWould you like to activate and finalize this object, destroy this object or skip it in this finalize procedure?", "Finalize", "Destroy", "Skip"); if (num == 0) { script.displayRoad = true; if (script.OOOOODODCQ == null) { List <ODODDQQO> arr = OCDQDCQOCQ.OQOODCQQCO(false); script.ODODCDOOQC(arr, OCDQDCQOCQ.OQQQOOOOOC(arr), OCDQDCQOCQ.OQODCCCCCD(arr)); } script.OOOOODODCQ.OOQCQOCOOC(script.displayRoad, script.OCCOCOOOCC); } if (num == 1) { renderflag = false; } if (num == 2) { renderflag = false; destroyTerrainScript = false; } } if (script.transform != null && renderflag && !script.OQCCDOOOCC) { if (script.OOOOODODCQ == null) { List <ODODDQQO> arr = OCDQDCQOCQ.OQOODCQQCO(false); script.ODODCDOOQC(arr, OCDQDCQOCQ.OQQQOOOOOC(arr), OCDQDCQOCQ.OQODCCCCCD(arr)); } if (RoadObjectScript.erInit == "") { RoadObjectScript.erInit = OQCOQQCOQO.OQDODODOQD(RoadObjectScript.version); OOQCOQOQQD.erInit = RoadObjectScript.erInit; } if (script.OOOOODODCQ == null) { script.OCQOQOCQDC(script.transform, null, null, null); } OOQCOQOQQD.OQDQQQCDQQ = true; if (!script.OQCCDOOOCC) { script.geoResolution = 0.5f; script.OQOQQQCDOQ(); if (script.objectType < 2) { OQCOOCDODD(script); } script.OOOOODODCQ.terrainRendered = true; script.ODCDQOOOQC(); } if (script.displayRoad && script.objectType < 2) { if (script.objectType == 1) { SetWaterScript(script); } script.OOOOODODCQ.road.transform.parent = null; script.OOOOODODCQ.road.layer = 0; script.OOOOODODCQ.road.name = script.gameObject.name; } else if (script.OOOOODODCQ.road != null) { DestroyImmediate(script.OOOOODODCQ.road); } bool flag = false; for (int i = 0; i < script.ODODQQOD.Length; i++) { if (script.ODODQQOD[i]) { flag = true; break; } } if (flag) { ODDOQODQCQ.OQODCQDDCO(script); } foreach (Transform child in script.transform) { if (child.name == "Side Objects") { child.name = script.gameObject.name + " - Side Objects "; child.parent = null; } } } else if (script.OQCCDOOOCC) { renderAlreadyDone = true; destroyTerrainScript = false; } if ((script.displayRoad || num != 2) && !renderAlreadyDone) { DestroyImmediate(script.gameObject); } } if (destroyTerrainScript) { EasyRoads3DTerrainID[] terrainscripts = (EasyRoads3DTerrainID[])FindObjectsOfType(typeof(EasyRoads3DTerrainID)); foreach (EasyRoads3DTerrainID script in terrainscripts) { DestroyImmediate(script); } } } }