public override void OnInspectorGUI() { DrawDefaultInspector(); PaintTerrain myScript = (PaintTerrain)target; if (GUILayout.Button("Generate Terrain")) { myScript.Start(); } }
private void Start() { if (instance != null && instance != this) { Destroy(gameObject); } else { instance = this; } }
/* [System.Serializable] * public class SplatHeights * { * public int textureIndex; * public int startingHeight; * } * * public SplatHeights[] splatHeights; * public TerrianGenerator tg; * * void Start() * { * TerrainData terrainData = Terrain.activeTerrain.terrainData; * float[,,] splatmapData = new float[terrainData.alphamapWidth, terrainData.alphamapHeight,terrainData.alphamapLayers]; * Debug.Log(terrainData.alphamapWidth); * Debug.Log(terrainData.alphamapHeight); * * for (int y = 0; y<terrainData.alphamapHeight;y++) * { * for(int x=0;x<terrainData.alphamapWidth; x++) * { * float terrainHeight = terrainData.GetHeight(y, x); * float[] splat = new float[splatHeights.Length]; * * for(int i = 0; i<splatHeights.Length;i++) * { * if(terrainHeight>=splatHeights[i].startingHeight) * { * splat[i] = 1; * } * } * * for (int j = 0; j < splatHeights.Length; j++) * { * splatmapData[x, y, j] = splat[j]; * } * } * } * * terrainData.SetAlphamaps(0, 0, splatmapData); * }*/ private void OnDestroy() { instance = null; }