public override void OnInspectorGUI() { DrawDefaultInspector(); TerrainPaint myScript = (TerrainPaint)target; if (GUILayout.Button("Paint")) { myScript.Paint(); } }
/// <summary> /// Applies the SplatSettings specified in TerraSettings to this /// TerrainTile. A TerrainPaint instance is created if it didn't exist /// already, and is returned. /// </summary> /// <returns>TerrainTile instance</returns> public TerrainPaint ApplySplatmap() { TerraEvent.TriggerOnSplatmapWillCalculate(Tile.gameObject); if (Paint == null) { Paint = new TerrainPaint(Tile.gameObject); } List <Texture2D> maps = Paint.GenerateSplatmaps(); maps.ForEach(m => TerraEvent.TriggerOnSplatmapDidCalculate(Tile.gameObject, m)); return(Paint); }
public void SetLayer() { float[,,] map = new float[t.terrainData.alphamapWidth, t.terrainData.alphamapHeight, t.terrainData.alphamapLayers]; int[,] detail = new int[t.terrainData.detailWidth, t.terrainData.detailHeight]; for (int y = 0; y < t.terrainData.alphamapHeight; y++) { for (int x = 0; x < t.terrainData.alphamapWidth; x++) { for (int i = 0; i < map.GetLength(2); i++) { var height = noise.noise.rawData[x, y]; var index = region.GetIndex(height); if (index == 0) { map[x, y, 1] = 1; } if (index == 1) { map[x, y, 2] = 1; } if (index == 2) { map[x, y, 3] = 1; detail[x, y] = 1; } if (index == 3) { map[x, y, 0] = 1; } if (index == 4) { map[x, y, 5] = 1; } } } } t.terrainData.SetAlphamaps(0, 0, map); TerrainPaint.ModifyDetail(t.terrainData, detail, 1); }