Introduction
Create expressive 2D and 2.5D water, connect it to gameplay, and make it your own.
Documentation version: 1.0.0
Ultimate Water System 2D is a Unity toolkit for creating stylized, interactive water for 2D and 2.5D games. A unified Inspector brings together water geometry, surface and underwater appearance, waves, reflections, ripples, wakes, currents, and optional modules, allowing each water body to be built and adjusted from one place.
The system includes a distinctive 2.5D aquarium view for scenes that use a perspective camera. Its surface extends into the scene above the underwater volume, giving side-view gameplay a stronger sense of depth. The 2D and Fake Perspective workflows cover conventional side-view and orthographic scenes. Across the interactive water types, moving objects can produce dynamic ripples, splashes, and wakes, while visual and physical responses remain independently adjustable.
Gameplay utilities connect the water to characters and objects without taking ownership of the rest of the game. Water Sensor 2D reports contact, submersion, surface position, depth, currents, ripple forces, and entry or exit events. Those readings can drive the supplied controller helpers and code examples or feed a custom movement, animation, audio, oxygen, or effects system.
The package also provides buoyancy, rideable floating platforms, current zones, floating debris and props, random ripples, underwater light rays, sprite reflections, and exclusion zones for dry caves, rooms, islands, and other spaces inside a larger water body. Presets, Scene handles, automatic reflection setup, and focused authoring tools support both rapid setup and detailed visual control.
This guide begins with the available water types and sample scenes, then covers authoring, interactions, gameplay integration, scripting, performance, and troubleshooting.
Table of contents
- Choose the right water and interaction setup
- 1. Import and explore the samples
- 2. Quick start: create your first water body
- 3. Main water settings
- 4. Water appearance
- 5. Reflections and scene captures
- 6. Waves, impact ripples, and wakes
- 7. Presets and saving changes
- 8. Water Sensor 2D
- 9. Swimming and character integration
- Choose a controller approach
- What WaterCharacter2D calculates
- Shared controller update order
- Dynamic Rigidbody2D controller
- Kinematic controller
- Direct WaterSensor2D controller
- Water jumping
- Water entry and automatic plunge
- MotionTracker2D and custom movement
- Custom movement example: underwater dash
- 10. Buoyancy
- 11. Floating platforms
- 12. Modules overview
- 13. Water Current
- 14. Exclusion Areas
- 15. Random Ripples
- 16. Floating Debris
- 17. Floating Props
- 18. Light Rays
- 19. Simple Water 2D
- 20. Sprite Reflection
- 21. Runtime controls and scripting recipes
- 22. Performance
- 23. Troubleshooting and FAQ
- 24. API reference
- API map
- Reference index
- WaterPhysics configuration and status
- WaterPhysics height and force queries
- WaterSample fields
- WaterPhysics point and collider queries
- WaterPhysics ripple creation API
- WaterSensor2D method API
- WaterCharacter2D method API
- MotionTracker2D API
- Advanced WaterPhysics integration methods
- WaterSensor2D configuration, events, and readings
- WaterCharacter2D configuration and readings
- IWaterSurfacePhysics2D API
- DWBuoyancy2D API
- DWFloatingPlatform2D API
- WaterRippleOverride API
- Current API
- Exclusion-zone API
- Visual module APIs
- SimpleWater2D and SimpleWaterPreset API
- SpriteReflection API
- Preset scripting API
