Fish Controller – Arcade-Style Underwater Movement System
The Fish Controller is a complete, arcade-style underwater movement system for Unity, designed for swimming games, underwater exploration, fishing experiences, and ambient ocean scenes. Built on Rigidbody physics, it delivers smooth, responsive 3D swimming with depth control, boost bursts, natural banking, idle bobbing, and extensible event hooks.
This asset includes not only a fully playable fish controller, but also a cinematic underwater camera, automatic audio controller, and an ambient boid system for creating lively fish swarms with minimal setup.
Key Features
🐟 Core Fish Movement
- Full 3D underwater swimming (forward, turn, rise, dive)
- Rigidbody-based physics for smooth, organic motion
- Acceleration, drag, buoyancy, and depth control
- Natural pitch, roll (banking), and auto-leveling
- Idle bobbing when stationary
- Configurable maximum depth and water surface level
⚡ Boost System
- Instant boost bursts with cooldown
- Adjustable boost strength, duration, and recovery
- UnityEvent hooks for VFX, audio, and gameplay logic
🎥 Fish Camera
- Smooth third-person underwater camera
- Speed-based dynamic FOV
- Boost FOV kick for cinematic motion
- Depth-based color tinting (shallow → deep water)
- Tilt-follow and look-ahead targeting
- Snap-to-target support for cutscenes or respawns
🔊 Fish Audio Controller
- Automatic looping swim audio
- Speed-based pitch and volume modulation
- One-shot boost, surface, and dive sounds
- Optional underwater ambience loop
- Event-driven design for easy customization
🐠 Ambient Boid System (Fish Swarms)
- Lightweight classic flocking behavior
- No Rigidbody required for boids
- Configurable cohesion, alignment, separation, and wander
- Bounded swim areas with force-based containment
- Runtime spawning and clearing
- Optional batched updates for performance
Perfect for background life, reefs, aquariums, or open ocean scenes.