news 2026/9/6 0:06:51

同步路径查找:FindPathToLocationSynchronously

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
同步路径查找:FindPathToLocationSynchronously

函数功能概述

UNavigationSystemV1::FindPathToLocationSynchronously是一个同步路径查找函数,用于在两个位置之间计算导航路径。它会在当前帧立即执行路径计算并返回结果。

参数详解

1.WorldContextObject(世界上下文对象)

  • 类型:UObject*
  • 作用: 提供当前世界的上下文信息,用于获取正确的World对象

2.PathStart(路径起点)

  • 类型:const FVector&
  • 作用: 路径计算的起始位置(世界坐标)

3.PathEnd(路径终点)

  • 类型:const FVector&
  • 作用: 路径计算的目标位置(世界坐标)

4.PathfindingContext(路径查找上下文)

  • 类型:AActor*
  • 作用: 提供路径查找的上下文信息,如:
    • 导航代理的大小和属性
    • 影响路径计算的Actor信息
    • 如果为nullptr,使用默认的导航代理设置

5.FilterClass(过滤器类)

  • 类型:TSubclassOf<UNavigationQueryFilter>
  • 作用: 自定义导航查询过滤器,用于:
    • 定义哪些区域可以通行
    • 设置不同区域的成本权重
    • 实现复杂的导航约束

返回值

  • 类型:UNavigationPath*
  • 作用: 返回计算出的导航路径对象,包含:
    • 路径点序列
    • 路径长度信息
    • 路径状态(有效/无效)

工作流程

  1. 验证输入: 检查起点和终点是否有效
  2. 投影到导航网格: 将3D坐标投影到最近的导航网格表面
  3. 路径计算: 使用A*算法或其他路径查找算法
  4. 路径优化: 对计算出的路径进行平滑和优化
  5. 返回结果: 返回包含路径点的UNavigationPath对象

使用场景示例

// 在角色类中使用voidAMyCharacter::MoveToLocation(constFVector&TargetLocation){// 同步计算路径UNavigationPath*Path=UNavigationSystemV1::FindPathToLocationSynchronously(this,// WorldContextObjectGetActorLocation(),// PathStartTargetLocation,// PathEndthis,// PathfindingContext (使用角色自身)nullptr// FilterClass (使用默认过滤器));if(Path&&Path->IsValid()){// 路径有效,开始移动FollowPath(Path->PathPoints);}}

重要特性

1.同步执行

  • 在当前帧立即完成计算
  • 阻塞当前线程直到计算完成
  • 适用于需要立即结果的场景

2.线程安全

  • 可以在游戏线程中安全调用
  • 内部处理了必要的同步机制

3.导航网格依赖

  • 依赖于预先构建的导航网格
  • 如果位置不在导航网格上,会自动投影到最近的可导航点

替代方案

如果需要异步路径查找,可以使用:

  • FindPathToLocationSynchronously的异步版本
  • AI移动组件的内置路径查找功能

这个函数是Unreal Engine AI和移动系统的基石,广泛应用于角色移动、AI寻路、自动导航等场景。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/5 18:47:34

51c自动驾驶~合集62

我自己的原文哦~ https://blog.51cto.com/whaosoft143/14390796 #xxx .... #xxx .... #xxx .... #xxx .... #xxx .... #xxx .... #xxx .... #xxx .... #xxx .... #xxx .... #xxx .... #xxx .... #xxx .... #xxx .... #xxx .... #xxx .... #xxx …

作者头像 李华
网站建设 2026/9/5 2:37:35

移动通信无线基站的防雷技术研究

一、基站防雷技术概述 移动通信基站的防雷是保障通信安全的关键环节&#xff0c;涉及直击雷防护、感应雷防护和接地系统三大方面。基站通常建在高处或开阔地带&#xff0c;天线和铁塔易成为雷击目标&#xff0c;一旦遭受雷击&#xff0c;不仅可能损坏设备&#xff0c;还会造成通…

作者头像 李华
网站建设 2026/9/4 4:18:32

跨网聊天自由!Fiora这样用突破地域限制

文章目录前言1.关于Fiora2.安装Docker3.本地部署Fiora4.使用Fiora5.cpolar内网穿透工具安装6.创建远程连接公网地址7.固定Uptime Kuma公网地址前言 Fiora 是一款功能丰富的开源聊天工具&#xff0c;支持一对一私聊、群组聊天&#xff0c;能发送文本、图片、文件、代码等多种消…

作者头像 李华
网站建设 2026/9/4 17:03:13

2500线磁编码器方案:电机反馈系统的新选择

2500线磁编码器方案 电机反馈系统 &#xff0c;用于交直流伺服和步进闭环&#xff0c;替换原来光编方案。 原理图和PCB全套文件 支持电机驱动器&#xff1a;迈信EP100、广数DA98、数控SD200A等 。增量ABZ差分输出&#xff0c;UVW差分输出&#xff0c;2500PPR&#xff0c;Z脉冲宽…

作者头像 李华
网站建设 2026/9/5 16:01:51

抓取cpu持续忙碌状态的方法

一、背景 在一些cpu资源并不是很充足的系统上,往往会出现cpu持续一段时间特别忙碌的情况,cpu持续忙碌是一个很不好的状态,可能会伴随着有些任务的调度时延变大,系统里的一些业务如果要求一定的实时性的话,这时候就会产生问题。 编写一个ko来抓取cpu的忙碌状态是有意义的…

作者头像 李华
网站建设 2026/9/5 19:12:37

华为OD机试真题 - 高效货运 (C++ Python JAVA JS GO)

高效货运 2025华为OD机试真题 - 华为OD上机考试真题 100分题型 华为OD机试真题目录点击查看: 华为OD机试真题题库目录|机考题库 + 算法考点详解 题目描述 老李是货运公司承运人,老李的货车额定载货重量为 wt。 现有两种货物: 货物 A 单件重量为 wa,单件运费利润为 pa 货…

作者头像 李华