1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- //
- // ShaderGraphEssentials for Unity
- // (c) 2019 PH Graphics
- // Source code may be used and modified for personal or commercial projects.
- // Source code may NOT be redistributed or sold.
- //
- // *** A NOTE ABOUT PIRACY ***
- //
- // If you got this asset from a pirate site, please consider buying it from the Unity asset store. This asset is only legally available from the Unity Asset Store.
- //
- // I'm a single indie dev supporting my family by spending hundreds and thousands of hours on this and other assets. It's very offensive, rude and just plain evil to steal when I (and many others) put so much hard work into the software.
- //
- // Thank you.
- //
- // *** END NOTE ABOUT PIRACY ***
- //
- using UnityEngine;
- namespace ShaderGraphEssentials
- {
- [System.Serializable]
- public class NoiseOctaveData
- {
- public Vector2 Direction;
- public float Amplitude = 1f;
- public float Speed = 1f;
- public float Frequency = 1f;
- }
- public class TesselatedWater : MonoBehaviour
- {
- // disable "not assigned" warning because it is assigned by the editor
- #pragma warning disable 0649
- [SerializeField]
- private NoiseOctaveData[] _noiseOctaveData;
- [SerializeField]
- private MeshFilter _waterGrid;
- #pragma warning restore 0649
- private Mesh _waterMesh;
- private Vector3[] _vertices;
- void Start()
- {
- _waterMesh = _waterGrid.mesh;
- _vertices = _waterMesh.vertices;
- }
- void Update()
- {
- for (int i = 0; i < _vertices.Length; i++)
- {
- var position = _vertices[i];
- float height = 0f;
- foreach (var data in _noiseOctaveData)
- {
- Vector2 direction = data.Direction.normalized;
- height += data.Amplitude * Mathf.Sin(Time.time * data.Speed + data.Frequency * (position.x * direction.x + position.z * direction.y));
- }
-
- _vertices[i] = new Vector3(position.x, height, position.z);
- }
- _waterMesh.vertices = _vertices;
- _waterMesh.RecalculateNormals();
- }
- }
- }
|