Version: 2023.2
public static void DrawBuildDebug (AI.NavMeshData navMeshData, AI.NavMeshBuildDebugFlags flags= NavMeshBuildDebugFlags.All);

参数

navMeshData NavMesh 对象,已在构建过程中特意收集其调试数据。
flags 用于指定一次显示的各个数据类型的位掩码。

描述

在 Editor 中显示在指定 NavMesh 的构建过程中使用的精确中间数据。

另请参阅:NavMeshBuildSettings.debug

using System.Collections.Generic;
using UnityEditor.AI;
using UnityEngine;
using UnityEngine.AI;

public class NavMeshBuildDebugDraw : MonoBehaviour { NavMeshData m_NavMeshData;

void Start() { var bounds = new Bounds(transform.position, new Vector3(100.0f, 100.0f, 100.0f)); var markups = new List<NavMeshBuildMarkup>(); var sources = new List<NavMeshBuildSource>(); UnityEditor.AI.NavMeshBuilder.CollectSourcesInStage( bounds, ~0, NavMeshCollectGeometry.RenderMeshes, 0, markups, gameObject.scene, sources);

var settings = NavMesh.GetSettingsByID(0); var debug = new NavMeshBuildDebugSettings(); debug.flags = NavMeshBuildDebugFlags.All; settings.debug = debug;

m_NavMeshData = new NavMeshData(); UnityEngine.AI.NavMeshBuilder.UpdateNavMeshDataAsync(m_NavMeshData, settings, sources, bounds); }

void OnDrawGizmos() { NavMeshEditorHelpers.DrawBuildDebug( m_NavMeshData, NavMeshBuildDebugFlags.Regions | NavMeshBuildDebugFlags.SimplifiedContours); } }