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