Esempio n. 1
0
        private void GetNewTextures(IMapChunk chunk, out Texture2D newLand, out Texture2D newWater)
        {
            BakedElementFlags bakedElements = BakedElementsLogic.GetBakedElementsInCells(chunk.CenteredCells);

            bakedElements |= BakedElementsLogic.GetBakedElementsInCells(chunk.OverlappingCells);

            Vector2 textureSize = GetBakeTextureDimensionsForElements(bakedElements);

            int textureX = Mathf.RoundToInt(textureSize.x);
            int textureY = Mathf.RoundToInt(textureSize.y);

            newLand = new Texture2D(textureX, textureY, TextureFormat.ARGB32, false);

            newLand.filterMode = FilterMode.Point;
            newLand.wrapMode   = TextureWrapMode.Clamp;
            newLand.anisoLevel = 0;

            newLand.name = "Land Bake Texture";

            newWater = new Texture2D(textureX, textureY, TextureFormat.ARGB32, false);

            newWater.filterMode = FilterMode.Point;
            newWater.wrapMode   = TextureWrapMode.Clamp;
            newWater.anisoLevel = 0;

            newWater.name = "Water Bake Texture";
        }
Esempio n. 2
0
 private Vector2 GetBakeTextureDimensionsForElements(BakedElementFlags elements)
 {
     if ((elements & TerrainBakeConfig.BakeElementsHighRes) != 0)
     {
         return(TerrainBakeConfig.BakeTextureDimensionsHighRes);
     }
     else if ((elements & TerrainBakeConfig.BakeElementsMediumRes) != 0)
     {
         return(TerrainBakeConfig.BakeTextureDimensionsMediumRes);
     }
     else if ((elements & TerrainBakeConfig.BakeElementsLowRes) != 0)
     {
         return(TerrainBakeConfig.BakeTextureDimensionsLowRes);
     }
     else
     {
         return(Vector2.zero);
     }
 }