/// <summary> /// Populated the materials /// </summary> /// <param name="rnl">The current road network layout</param> public void PopulateDefaultMaterials(RoadNetworkLayout rnl) { if (rnl == null) { return; } RoadBuilder rb = rnl.GetComponent <RoadBuilder>(); if (rb == null) { return; } Copy(rb.GetComponent <IMaterialFrequency>()); }
/// <summary> /// The inspector for the RoadBuilder /// </summary> public override void OnInspectorGUI() { DrawDefaultInspector(); RoadBuilder roadBuilder = (RoadBuilder)target; GUI.color = Color.red; if (GUILayout.Button("Remove mesh")) { roadBuilder.RemoveRoadMesh(true); SetSceneDirty(); } GUI.color = Color.green; if (GUILayout.Button("Create Mesh")) { roadBuilder.CreateMesh(true); SetSceneDirty(); } GUI.color = Color.yellow; if (GUILayout.Button("Repair layout")) { for (int i = 0; i < 5; i++) { roadBuilder.RepairAllNodes(); } Debug.Log("Repaired all nodes in layout."); EditorGUIUtility.ExitGUI(); } if (!roadBuilder.HasTerrainModifier()) { GUI.color = Color.green; if (GUILayout.Button("Add terrain modifier")) { roadBuilder.AddTerrainModifier(); SetSceneDirty(); } } else { GUI.color = Color.green; if (GUILayout.Button("Modify Terrain to match road")) { roadBuilder.ModifyTerrain(); SetSceneDirty(); } TerrainModifier tm = roadBuilder.GetComponent <TerrainModifier>(); if (tm != null && tm.HasStoredTerrain) { if (GUILayout.Button("Restore previous terrain")) { tm.RestoreTerrain(); SetSceneDirty(); } } GUI.color = Color.red; if (GUILayout.Button("Remove terrain modifier")) { roadBuilder.RemoveTerrainModifier(); SetSceneDirty(); EditorGUIUtility.ExitGUI(); } } }