コード例 #1
0
    private void Awake()
    {
        borderedChunkSize = mapChunkSize + 2;
        plainsHeight     /= terrainData.uniformScale;
        mountainsHeight  /= terrainData.uniformScale;

        if (terrainData.useFalloff)
        {
            falloffMap = MaskLib.Falloff(borderedChunkSize);
        }

        if (textureData != null)
        {
            textureData.ApplyToMaterial(terrainMaterial);
        }
    }
コード例 #2
0
    public float[,] GenerateMapData(Vector2 center, float preferedHeight, float preferedHeightVariance)
    {
        float[,] noiseMap = MaskLib.Perlin(borderedChunkSize, borderedChunkSize, noiseData.seed, noiseData.scale, noiseData.octaves, noiseData.persistence, noiseData.lacunarity, center + noiseData.offset);

        for (int y = 0; y < borderedChunkSize; y++)
        {
            for (int x = 0; x < borderedChunkSize; x++)
            {
                if (terrainData.useFalloff)
                {
                    noiseMap[x, y] = Mathf.Clamp01(noiseMap[x, y] - falloffMap[x, y]);
                }
            }
        }

        textureData.UpdateMeshHeights(terrainMaterial, terrainData.minHeight, terrainData.maxHeight);
        return(noiseMap);
    }