45 lines
1.0 KiB
C#
45 lines
1.0 KiB
C#
using UnityEngine;
|
|
|
|
public class PerlinNoiseScroller
|
|
{
|
|
#region Variables
|
|
PerlinNoiseData m_data;
|
|
|
|
Vector3 m_noiseOffset;
|
|
Vector3 m_noise;
|
|
#endregion
|
|
|
|
#region Properties
|
|
public Vector3 Noise => m_noise;
|
|
#endregion
|
|
|
|
#region Custom Methods
|
|
public PerlinNoiseScroller(PerlinNoiseData _data)
|
|
{
|
|
m_data = _data;
|
|
|
|
float _rand = 32f;
|
|
|
|
m_noiseOffset.x = Random.Range(0f, _rand);
|
|
m_noiseOffset.y = Random.Range(0f, _rand);
|
|
m_noiseOffset.z = Random.Range(0f, _rand);
|
|
}
|
|
|
|
public void UpdateNoise()
|
|
{
|
|
float _scrollOffset = Time.deltaTime * m_data.frequency;
|
|
|
|
m_noiseOffset.x += _scrollOffset;
|
|
m_noiseOffset.y += _scrollOffset;
|
|
m_noiseOffset.z += _scrollOffset;
|
|
|
|
m_noise.x = Mathf.PerlinNoise(m_noiseOffset.x, 0f);
|
|
m_noise.y = Mathf.PerlinNoise(m_noiseOffset.x, 1f);
|
|
m_noise.z = Mathf.PerlinNoise(m_noiseOffset.x, 2f);
|
|
|
|
m_noise -= Vector3.one * 0.5f;
|
|
m_noise *= m_data.amplitude;
|
|
}
|
|
#endregion
|
|
}
|