This document is about: QUANTUM 1
SWITCH TO

Auto Baking Map Data

C#

[InitializeOnLoad]
public sealed class MapAutoBaker {
  static MapAutoBaker() {
    EditorSceneManager.sceneSaving += (scene, path) => {
      foreach (var mapData in scene.findObjectsOfTypeAll<MapData>()) {
        MapDataBaker.BakeMapData(mapData, true);
        EditorUtility.SetDirty(mapData.Asset);
      }
    };
  }
}

Related example to chain the NavMesh creation into the map baking (Quantum 1.2.1):

C#

using Quantum.Editor;
using UnityEditor;
using UnityEditor.AI;

[InitializeOnLoad]
public sealed class MapBakerToolchain : MapDataBakerCallback {
  static MapBakerToolchain() {
  }

  public override void OnBake(MapData data) {
    MapDataBaker.BakeNavMeshes(data, true);
  }

  public override void OnBeforeBake(MapData data) {
    NavMeshBuilder.ClearAllNavMeshes();
    NavMeshBuilder.BuildNavMesh();
    var navMeshes = data.gameObject.GetComponentsInChildren<MapNavMeshDefinition>();
    foreach (var n in navMeshes) {
      MapNavMeshDefinitionEditor.ImportFromUnity(n);
      EditorUtility.SetDirty(n.gameObject);
    }
  }
}
Back to top