news 2026/5/11 7:36:59

同步路径查找: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/5/9 23:02:34

30天学完可以放进简历的Agent真实项目

从很多的AI产品项目里选出了这10个项目&#xff0c;已经脱敏出来了&#xff0c;包含了项目从0-1的搭建、竞品分析、PRD文档和原型图的构成&#xff0c;并且这些业务都已经再互联网和真实场景有应用场景了&#xff0c;吃透这些项目会对你做AI产品有极大的启发和帮助&#xff0c;…

作者头像 李华
网站建设 2026/5/7 15:23:22

基于单片机的点阵显示屏交通灯控制系统设计

1. 系统总体概述 点击链接下载设计资料&#xff1a;https://download.csdn.net/download/m0_51061483/91961172 1.1 设计背景 随着城市化进程的不断加快&#xff0c;交通压力日益增大&#xff0c;交通信号灯作为道路交通控制系统中最基础、最关键的组成部分&#xff0c;其运行…

作者头像 李华
网站建设 2026/5/10 21:39:42

超实用的换热器蒸发器冷凝器管翅式换热器三维可编辑模型分享✨

换热器蒸发器冷凝器管翅式换热器三维可编辑模型 这是应用于家用空调系统的换热器 格式为.sldprt&#xff0c;需要solidworks2020及以上版本才能打开 各部分零件图也可单独使用&#xff0c;可用于工业设计和仿真家人们&#xff0c;今天要给大家分享一个超棒的模型——换热器蒸发…

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

基于微信小程序的自习室座位预约系统

博主介绍&#xff1a;java高级开发&#xff0c;从事互联网行业六年&#xff0c;熟悉各种主流语言&#xff0c;精通java、python、php、爬虫、web开发&#xff0c;已经做了多年的设计程序开发&#xff0c;开发过上千套设计程序&#xff0c;没有什么华丽的语言&#xff0c;只有实…

作者头像 李华
网站建设 2026/5/1 23:29:51

基于MindSpore在昇腾NPU下的自动混合精度(AMP)训练实战指南

前言在深度学习大模型时代&#xff0c;显存占用和训练耗时是开发者最头疼的两个问题。昇腾&#xff08;Ascend&#xff09;系列 AI 处理器&#xff08;如 Ascend 910&#xff09;在半精度&#xff08;FP16&#xff09;计算上拥有强大的算力优势。MindSpore 框架原生支持自动混合…

作者头像 李华
网站建设 2026/5/3 10:04:37

基于MATLAB的射线成像模拟仿真之旅

射线成像模拟仿真代码&#xff0c;MATLAB 输入STL文件&#xff0c;输出模拟成像图像文件。 可以任意角度&#xff0c;任意距离等实现成像。在射线成像的领域中&#xff0c;模拟仿真能够帮助我们在实际实验之前就对成像效果有一个清晰的认知。而借助MATLAB这一强大的工具&#x…

作者头像 李华