Upgrade guide to 3.0

Upgrade from 2.2 to 3.0

You can download the new version of Ultimate Terrains through the Asset Store.

Breaking Changes

The version 3 comes with strong performance improvements, but also with breaking changes:

  • requires Unity 2018.1.8 (or more recent version).
  • requires .NET 4.x as API compatibility level (which is stable in Unity 2018).
  • no more terrain baking. This feature has been completely removed as it’s now faster to generate the terrain than to load it from serialized data.
  • LibNoise namespace changed from “UNoise.Graphics.Tools.Noise” to “LibNoise”. You may need to update your scripts.

How to upgrade?

Go to Player Settings (Edit > Project Settings > Player) and select .NET 4.x as Scripting Runtime Version.

If you have existing scenes, select uTerrains object to display its inspector GUI, remove the component corresponding to the deprecated Bake Component and add Orchestrator and AsyncOperationOrchestrator components (by clicking Add Component in the inspector).

New advice for parameters values:

  • In Global Settings tab, set ‘Max LOD with cache’ to 1.
  • In Global Settings tab, set ‘Max ms/frame’ to 8 and ‘Max post-building/frame’ to 25.

New way to perform operations

Operations can now be done asynchronously. This is the prefered way as it prevents lags, but it requires a little update in your scripts.

if (Terrain.OperationsManager.IsReadyToComputeAsync) { // <- very important!
    Terrain.OperationsManager.Add(new DigSphere(position, radius, voxelType)).PerformAll(true);

Notice the line 'if (Terrain.OperationsManager.IsReadyToComputeAsync) {'. It is mandatory to check this before performing operations asynchronously. Forgetting to do that will raise some errors.