public static float PerlinNoise (float x, float y);

パラメーター

x サンプル点の X 座標
y サンプル点の Y 座標

戻り値

float 0.0 と 1.0 の間の値

説明

2D のパーリンノイズを生成します

Although the noise plane is two-dimensional, it is easy to use just a single one-dimensional line through the pattern, say for animation effects.

Note: It is possible for the return value to slightly exceed 1.0f. You may need to clamp the return value if the 0.0 to 1.0 range is important to you.

using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public int pixWidth; public int pixHeight; public float xOrg; public float yOrg; public float scale = 1.0F; private Texture2D noiseTex; private Color[] pix; private Renderer rend; void Start() { rend = GetComponent<Renderer>(); noiseTex = new Texture2D(pixWidth, pixHeight); pix = new Color[noiseTex.width * noiseTex.height]; rend.material.mainTexture = noiseTex; } void CalcNoise() { float y = 0.0F; while (y < noiseTex.height) { float x = 0.0F; while (x < noiseTex.width) { float xCoord = xOrg + x / noiseTex.width * scale; float yCoord = yOrg + y / noiseTex.height * scale; float sample = Mathf.PerlinNoise(xCoord, yCoord); pix[y * noiseTex.width + x] = new Color(sample, sample, sample); x++; } y++; } noiseTex.SetPixels(pix); noiseTex.Apply(); } void Update() { CalcNoise(); } }
using UnityEngine;
using System.Collections;

public class ExampleClass : MonoBehaviour { public float heightScale = 1.0F; public float xScale = 1.0F; void Update() { float height = heightScale * Mathf.PerlinNoise(Time.time * xScale, 0.0F); Vector3 pos = transform.position; pos.y = height; transform.position = pos; } }