Project Title: Dynamic Wave Simulation in Unity

Description:

The Unity C# script, WaveGenerator, is designed to simulate dynamic wave motion on a 3D mesh surface, typically applied to a plane. The script creates a visually realistic wave effect by manipulating the vertices of the mesh in real-time, giving the impression of waves propagating across the surface.

Key Features:

  • Amplitude Control: Adjusts the height of the wave peaks, making the waves taller or shorter based on the desired visual effect.
  • Frequency Modulation: Controls how quickly the waves oscillate, allowing for fast or slow wave patterns.
  • Wave Number: Defines how many waves can fit within a specific distance, enabling a dense or sparse wave distribution.
  • Decay with Distance: The script includes a mechanism to reduce wave height with distance from the origin, creating a natural attenuation effect.
  • Speed of Propagation: Customizable wave speed that dictates how fast the waves travel across the surface.
  • Realistic Mesh Deformation: The vertices of the mesh are dynamically adjusted each frame to create a convincing wave effect, complete with accurate lighting adjustments through normal recalculations.

Use Cases:

  • Water Simulation: Ideal for simulating ocean waves, pond ripples, or any scenario where a dynamic water surface is needed.
  • Terrain Deformation: Can be adapted for creating dynamic terrain features, like rolling hills or moving sand dunes.
  • Interactive Environments: Suitable for games or applications where environmental interaction, such as moving across a liquid surface, needs to be visually represented.