/// <summary> /// Called if the terrain hasn't been setup yet or /// if the terrain GameObject is missing any components /// </summary> private void SetupTerrainEditor(TerrainSegment terrain) { if (terrain.gameObject.name == "GameObject") { terrain.gameObject.name = "Terrain"; } if (terrain.GetComponent <EdgeCollider2D>() == null) { terrain.gameObject.AddComponent <EdgeCollider2D>(); } if (terrain.GetComponent <MeshFilter>() == null) { terrain.gameObject.AddComponent <MeshFilter>(); } if (terrain.GetComponent <MeshRenderer>() == null) { MeshRenderer newRenderer = terrain.gameObject.AddComponent <MeshRenderer>(); newRenderer.receiveShadows = false; //newRenderer.shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off; } terrain.Setup(terrain.numberOfPoints, terrain.createEdge, 0); }
public override void OnInspectorGUI() { TerrainSegment terrain = (TerrainSegment)target; DrawDefaultInspector(); if (terrain.GetMesh() == null || terrain.GetComponent <EdgeCollider2D>() == null || terrain.GetComponent <MeshFilter>() == null || terrain.GetComponent <MeshRenderer>() == null) { SetupTerrainEditor(terrain); } else { RunTerrainEditor(terrain); } }