Example #1
0
    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);
        }
Example #3
0
 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);
 }