news 2026/5/23 18:24:16

同步路径查找: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/22 21:18:08

时序数据选型、存储模型与选型

时序数据选型、存储模型与选型 一、时序数据的特征与挑战 时间戳驱动&#xff1a;数据天然带有时间维度&#xff0c;典型场景包括监控指标、传感器采集、交易日志。高吞吐写入&#xff1a;数据持续产生&#xff0c;要求数据库具备批量写入与乱序处理能力。查询模式特殊&#xf…

作者头像 李华
网站建设 2026/5/22 18:21:24

基于微信小程序的家政服务系统

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

作者头像 李华
网站建设 2026/5/23 16:24:37

MindSpore高效训练指南:从数据流水线到混合精度实战

在昇腾&#xff08;Ascend&#xff09;NPU上进行深度学习模型训练时&#xff0c;我们经常会遇到GPU转NPU的代码迁移问题&#xff0c;或者发现算力虽然强劲&#xff0c;但训练速度受限于IO或显存。作为一名在昇腾生态摸爬滚打的开发者&#xff0c;今天我想分享几个基于MindSpore…

作者头像 李华
网站建设 2026/5/21 19:27:58

两阶段鲁棒优化在主动配电网动态无功优化中的实践

两阶段鲁棒优化的主动配电网动态无功优化 关键词&#xff1a;两阶段鲁棒优化&#xff0c;CCG算法&#xff0c;储能 仿真算例采用33节点&#xff0c;采用matlabyalmipcplex编写&#xff0c;两阶段模型采用CCG算法求解。 模型中一阶段变量主要包括01变量和无功优化变量&#xff0…

作者头像 李华
网站建设 2026/5/21 14:46:18

探索 DSPLLC 开关电源模块设计的宝藏世界

DSPLLC开关电源模块设计资料DSP数字LLC电源源代码原理图软件学习&#xff0c;包含磁件设计、软件设计报告、硬件设计报告、硬件原理、主功率计算书、LLC环路设计、仿真、BOM、使用说明&#xff0c;调试波形等全面且详细的全套资料最近在研究电源相关的技术&#xff0c;发现了一…

作者头像 李华
网站建设 2026/5/22 21:01:03

基于推荐算法的校园电子图书听书系统

Spring Boot基于推荐算法的校园电子图书听书系统是一个专为校园师生设计的数字化阅读平台。以下是对该系统的详细介绍&#xff1a; 一、系统背景与目的 随着信息技术的不断发展&#xff0c;数字化阅读已经成为校园阅读的新趋势。为了满足校园师生对电子图书和听书资源的需求&am…

作者头像 李华