Unity记录5.4-地图-带种子的柏林噪声

汇总:Unity 记录

现在卡在了跨地图洞穴生成,没想到什么好的方法能够像地面一样随机连续洞穴块。

摘要:带种子的柏林噪声。

FastNoise_C#-2023/9/2

  • Auburn/FastNoise_CSharp: FastNoise C# Version
  • Feature:
    • Value Noise 2D, 3D
    • Perlin Noise 2D, 3D
    • Simplex Noise 2D, 3D, 4D
    • Cubic Noise 2D, 3D
    • Gradient Perturb 2D, 3D
    • Multiple fractal options for all of the above
    • Cellular (Voronoi) Noise 2D, 3D
    • White Noise 2D, 3D, 4D
    • Supports floats or doubles

带种子的柏林噪声-2023/9/1

  • Unity的柏林噪声设置不了种子,而后续我可能会需要通过固定输入来获取地图状态,因此改用FastNoise。

实现代码-2023/08/31-2023/9/1

  • 本来还包括一个地图块的类,但是我目前的边界点和周围是相关的,和随机生成有点冲突,考虑到用空间换计算量挺划算,所以也没实现计算边界点,因此这个类没什么信息量,没放。
// Thanks to Auburn and other authers of FastNoise, I copied it in 2023/9/2 from https://github.com/Auburn/FastNoise_CSharp

public class Noise{
    public int seed;
    FastNoise _noise_generator;

    public Noise(int seed=-1){
        if (seed == -1) seed = System.DateTime.Now.Millisecond;
        this.seed = seed;
        _noise_generator = new(seed);
    }

    public float perlin(int x, int y, float scale){
        _noise_generator.SetNoiseType(FastNoise.NoiseType.Perlin);
        _noise_generator.SetFrequency(1/scale);
        float noise_value = _noise_generator.GetNoise(x, y);
        return noise_value;
    }

    public float perlin(int x, float scale){
        _noise_generator.SetNoiseType(FastNoise.NoiseType.Perlin);
        _noise_generator.SetFrequency(1/scale);
        float noise_value = _noise_generator.GetNoise(x, 0f);
        return noise_value;
    }

    static float perlin(int x, int y, float scale, int seed){
        FastNoise noise_generator = new(seed);
        noise_generator.SetNoiseType(FastNoise.NoiseType.Perlin);
        noise_generator.SetFrequency(1/scale);
        float noise_value = noise_generator.GetNoise(x, y);
        return noise_value;
    }

    static float perlin(int x, float scale, int seed){
        float noise_value = perlin(x, 0, scale, seed);
        return noise_value;
    }
}

版权声明:
作者:MWHLS
链接:https://mwhls.top/4850.html
来源:无镣之涯
文章版权归作者所有,未经允许请勿转载。

THE END
分享
二维码
打赏
< <上一篇
下一篇>>
文章目录
关闭
目 录