查询网网站,wordpress只显示文字,专门做网上链接推广的网站,一个网站如何赚钱目录 说在前面安装使用可视化 说在前面 go version#xff1a;1.20.2 linux/amd64操作系统#xff1a;wsl2detour-go版本#xff1a;v0.2.0github#xff1a;这里#xff0c;求star! 安装
使用go mod安装即可go get github.com/o0olele/detour-go使用
使用场景模型构建n… 目录 说在前面安装使用可视化 说在前面 go version1.20.2 linux/amd64操作系统wsl2detour-go版本v0.2.0github这里求star! 安装
使用go mod安装即可go get github.com/o0olele/detour-go使用
使用场景模型构建navmesh 通过recast navigation demo进行构建构建完成后点击Save保存二进制文件 通过在线工具构建完成后点击Export as Recast NavMesh保存二进制文件 使用detour-go加载二进制navmesh文件var mesh loader.LoadTileMesh(./navmesh.bin)
if mesh nil {panic(load mesh failed.)
}进行寻路// 初始化nav mesh query
var meshQuery detour.DtAllocNavMeshQuery()
var status meshQuery.Init(mesh, 2048)
if detour.DtStatusFailed(status) {panic(init mesh query failed.)
}// 初始化 query filter
var meshFilter detour.DtAllocDtQueryFilter()// 确定寻路起点
var agentPos [3]float32
var agentHalfExtents [3]float32{1, 0.75, 1}
var agentNearestPoly detour.DtPolyRef
status meshQuery.FindNearestPoly(agentPos[:], agentHalfExtents[:], meshFilter, agentNearestPoly, agentPos[:])
if detour.DtStatusFailed(status) {panic(find closest point failed.)
}// 确定寻路终点
var agentTarget [3]float32{1.1322085857391357, 10.197294235229492, -5.400757312774658}
var agentTragetRef detour.DtPolyRef
status meshQuery.FindNearestPoly(agentTarget[:], agentHalfExtents[:], meshFilter, agentTragetRef, agentTarget[:])
if detour.DtStatusFailed(status) {panic(find agent target closest point failed.)
}// 寻路
var path [256]detour.DtPolyRef
var pathCount int
meshQuery.FindPath(agentNearestPoly, agentTragetRef, agentPos[:], agentTarget[:], meshFilter, path[:], pathCount, 256)// 详细路径
var straightPath [256 * 3]float32
var straightPathFlags [256]detour.DtStraightPathFlags
var straightPathRef [256]detour.DtPolyRef
var straightPathCount int
meshQuery.FindStraightPath(agentPos[:], agentTarget[:], path[:], pathCount, straightPath[:], straightPathFlags[:], straightPathRef[:], straightPathCount, 256, 0)
fmt.Println(straightPath[:straightPathCount*3])可视化
复制examples/web下的文件go run main.go在浏览器中访问http://localhost:9001/public 点击LoadTileMesh选择刚刚保存的二进制navmesh文件 点击Add Agent添加一个agent 鼠标左键选择移动的目标点