Mathf.PerlinNoise的单位不介于0和1之间

时间:2018-11-10 15:32:41

标签: unity3d game-development math-functions

有人知道为什么这样吗:

    Debug.Log(Mathf.PerlinNoise(190911.45f, 2290937.40f));  

给我:1.044323应该在0到1之间吗?

如果它可以大于1,它可以小于0吗?我正在使用精灵创建地图,并且一切正常:)除外,如果该值大于1,我将获得空白。

我使用随机种子,这就是为什么数量如此之大的原因,如果您想知道的话。

我希望有人能帮助我,谢谢:)

1 个答案:

答案 0 :(得分:2)

从Unity文档中,

  

注意:返回值可能会稍微超过1.0f。如果0.0到1.0的范围对您很重要,则可能需要限制返回值。

因此您需要使用float normalized = Mathf.Clamp(Mathf.PerlinNoise(190911.45f, 2290937.40f),0,1f)

第二个参数是最小值,而第三个参数是最大值。