Upgrade from v1.0
Breaking changes and upgrade notes for v2.0.
Tidal 2 is a near-complete rebuild of Tidal's rendering, simulation, and interaction stack. The FFT ocean core remains, but almost everything around it is new or rewritten. Read the full list below before upgrading a v1.0 project.
Before you start
- Back up your project and test the upgrade in a copy first.
- Upgrade Unity (to Unity 6, 6000.0+) and URP (to URP 17) before upgrading Tidal.
- Delete the old
Assets/Tidalfolder before importing Tidal 2 - the packages do not overlay, and Tidal 2 installs toAssets/Tidal 2.
Breaking changes & upgrade notes
- Unity 6 + URP 17 required. Upgrade the project before upgrading Tidal. Unity 2022 / 2021 are no longer supported; rendering is built on URP 17's RenderGraph API.
- Renderer feature. Remove any old
UnderwaterEffectFeaturefrom your URP renderer and addTidalRenderFeature- the validator will flag this. One feature now installs the surface, underwater, and meniscus passes and assigns per-body rendering layers. - Lake bodies. Switch former Lake-mesh bodies to the quad mesh generator with Infinite Bounds off and set the body bounds - same visual result, one system.
- Materials.
Tidal/Tidalgained many new properties (caustics, SSS, god rays, meniscus, reflections). Existing materials keep working; review the new defaults - they are tuned for a photoreal out-of-box look. - Zones. Zones now bake. If a zone appears inactive, check its
Affected Bodies/ layer mask against the body - scoping is enforced per body now. - Scripting. Move water-height queries to
TryGetWaterSurface/GetWaterHeighton the body (CPU-fast, wake-inclusive). The old per-frame sampling paths were removed with the lake generator. - Has Underwater moved. It now lives in the shared mesh settings
(
TidalMeshSharedSettings, drawn under the body's Core section). Bodies that had the old checkbox un-ticked revert to the default (on) - re-untick it after upgrading if needed. - Validate. After upgrading, run Window → Tidal 2 → Validator (or the body inspector's validation panel) - the new rules catch every known misconfiguration, including build-only issues like missing bake shaders in Always Included Shaders.
- Install folder is
Assets/Tidal 2. Upgrading from v1.0: delete the oldAssets/Tidalfolder before importing (the packages do not overlay). - Ocean Size is now Body Size (
TidalMeshSharedSettings.BodySize). Saved scene values migrate automatically; scripts referencingOceanSizemust rename. - Wake Produce Foam moved from the body to the interaction canvas
(Interaction → Layers). The stored value does not migrate across that move -
re-tick it on bodies that used wake foam. Scripts should read
TidalCanvasSubSystem.WakeProduceFoam. - Trimmed script surface. Unused public accessors were removed (among them
TidalBuoyancy.Submerged01, the canvas layer-enabled getters andMaxLod, cascade debug getters, and the planar subsystem's property-name string constants). Inspector workflows are unaffected; scripts using a removed member should query the equivalent setting via the body's settings objects. Serialized-field renames use[FormerlySerializedAs], so scene and prefab data is preserved.
Removed in v2.0
- Lake mesh generator - superseded by the quadtree generator's bounded mode.
- UnderwaterEffectFeature - superseded by
TidalRenderFeature(one feature installs everything). - Legacy per-pixel zone loop and its global-only bindings - replaced by baked per-body zone maps.
- Shoreline waves - the experimental shoreline breaking-wave zones were withdrawn from this release; the feature will return in a future update once robust.
- Retired material properties - do-nothing or superseded sliders were removed from the
Tidal/Tidalshader (foam Bubble Depth / Normal Strength / Roughness Amount, Wake Normal Strength, Underwater SSS Density) and their tuned values baked in. Values saved on existing materials are ignored harmlessly. (Wake Normal Strength has since returned as a new Surface → Advanced slider.) - VR / XR integration - withdrawn from this release; it will return as a separate, opt-in package configuration.
Full details are in the v2.0 changelog.