navMeshData | NavMesh 对象,已在构建过程中特意收集其调试数据。 |
flags | 用于指定一次显示的各个数据类型的位掩码。 |
在 Editor 中显示在指定 NavMesh 的构建过程中使用的精确中间数据。
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); } }