The supplied API uses the WaterCryo<T> reactive system — set .value and the shader updates automatically.
Runtime API Examples
var water = GetComponent<ModernWater2D>(); // Change water color water.settings._waterSettings.color.value = Color.blue; // Change foam speed water.settings._waterSettings.foamSpeed.value = new Vector2(0.5f, 0.1f); // Toggle reflections water.enableReflections.value = false; // Switch render mode water.renderMode = WaterRenderMode.Tilemap; water.ApplyRenderMode(); // Access the active material water.ActiveSharedMaterial.SetFloat("_surfaceAlpha", 0.5f);
Key Access Paths
| Path | What It Does |
|---|---|
water.ActiveSharedMaterial | Shared material on whichever renderer is active. |
water.ActiveRenderer | Active Renderer (SpriteRenderer or TilemapRenderer). |
water.ActiveBounds | World-space bounds of the active renderer. |
water.IsTilemapMode / IsSpriteMode | Check current render mode. |
water.settings._waterSettings | Visual settings (color, foam, distortion, etc). |
water.settings._reflectionsSettings | Reflection settings. |
water.settings._simulationSettings | Simulation settings. |
