怎么获取到NavMeshBuildSource
NavMeshBuildSource是一个结构体,需要通过代码创建和设置其属性。以下是一个示例:
using UnityEngine;
using UnityEngine.AI;
public class NavMeshBuilder : MonoBehaviour
{
void Start()
{
// 创建NavMeshBuildSource对象
NavMeshBuildSource source = new NavMeshBuildSource();
// 设置NavMeshBuildSource的属性
source.shape = NavMeshBuildSourceShape.Mesh;
source.sourceObject = GetComponent<MeshFilter>().mesh;
source.transform = transform.localToWorldMatrix;
source.area = 0;
// 通过NavMeshBuilder获取NavMeshBuildSettings
NavMeshBuildSettings settings = NavMesh.GetSettingsByID(0);
// 创建NavMeshData
NavMeshData data = new NavMeshData(settings.agentTypeID);
// 创建NavMeshBuildSource数组
NavMeshBuildSource[] sources = new NavMeshBuildSource[] { source };
// 生成NavMesh
NavMeshBuilder.BuildNavMeshData(settings, sources, new Bounds(transform.position, Vector3.one * 10), transform.position, transform.rotation, out data);
}
}
在上面的示例中,首先创建了一个NavMeshBuildSource对象,设置其形状为Mesh,源对象为当前游戏对象的Mesh组件,变换矩阵为当前游戏对象的本地到世界空间变换矩阵,区域为0。然后通过NavMesh.GetSettingsByID()获取NavMeshBuildSettings对象,创建NavMeshData对象,创建NavMeshBuildSource数组,最后通过NavMeshBuilder.BuildNavMeshData()生成NavMesh。
原文地址: https://www.cveoy.top/t/topic/HfH 著作权归作者所有。请勿转载和采集!