🌊Water Effects

A visual effects controller that drives dynamic water ripple shaders based on bobber interaction. It animates shader parameters to simulate realistic water disturbances when the bobber enters or exits the water surface.

Requires: A custom water shader that uses the above properties to render ripple/fade effects. 🎯 Designed for: Integration with fishing gameplay events (e.g., animation events or state machine triggers).


🔧 Inspector Settings

Bobber Reference

  • Bobber A Global Var TransformReference that pointing to the fishing bobber. Used to set the ripple origin in the shader.

Shader Properties Animation Settings

  • Enter Water Duration Time (in seconds) over which the ripple expands when the bobber first touches the water. Uses an ease-out exponential curve for smooth deceleration.

  • Exit Water Duration Time (in seconds) over which the ripple collapses (via inner hole expansion) when the bobber leaves the water.


💡 How It Works

  • On BobberTouchedWater():

    • Sets the ripple origin to the bobber’s current position.

    • Animates _FalloffRange from 0 → original value, creating an expanding ripple.

  • On BobberExitWater():

    • Animates _InnerHole from its original value → 1, simulating the ripple fading inward until it disappears.

  • Uses a material instance to avoid modifying the original shader asset.

  • Automatically cleans up the material on destruction.


🎯 Integration Tips

  • Call BobberTouchedWater() the moment the bobber hits the water surface (e.g., from a fishing rod animation event).

  • Call BobberExitWater() when the player starts reeling or the fish escapes.

The Event Listener is used to respond to events and trigger the responses on WaterEffects.

Last updated