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"; }
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); } }