You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让MHL的Transporters在路径上无需等待、可相互通行?

让MHL Transporters互相“穿过”的可行方案

1. 调整Transporter的核心导航与碰撞设置

  • 针对网络导航场景:打开Transporter属性的导航选项卡,在网络导航设置里取消勾选“等待路径上的其他代理”,让Transporter在单向路径上不会因其他同类代理阻挡而暂停。
  • 针对自由空间导航场景:除了将Transporter的尺寸设为极小值(比如0.01x0.01),还要在“避免碰撞”设置中关闭“避免与其他代理碰撞”选项,同时通过严格的目的地序列维持单向行驶逻辑。

2. 用PML流程块重构移动逻辑

既然已有现成的单向网络,完全可以用PML的MoveByNetwork块替代Transporter的默认导航,实现无阻挡通行:

  • 创建普通Agent作为拣选员(无需继承Transporter),通过MoveByNetwork块指定目标节点。
  • 在MoveByNetwork块的设置中,找到“路径占用”相关选项,选择“不占用路径”,这样多个拣选员可同时在同一段路径上移动,不会互相等待。
  • 配合Sequence块或自定义代码,控制Agent按预设的单向路径序列移动,还原原有拣选路线。

3. 代码覆盖Transporter的默认避让逻辑

如果坚持使用Transporter实体,可通过代码强制关闭其碰撞等待机制:

  • 在Transporter的onBeforeMove事件中添加以下代码:
    this.setAvoidCollisions(false);
    this.setAvoidObstacles(false); // 若无需避开静态障碍物可关闭
    
  • 或者在网络路径的onEnter事件中,允许同一路径容纳多个Agent:
    ((NetworkPath)getCurrentPath()).setAllowMultipleAgents(true);
    

注意:所有方案都要确保单向行驶逻辑不受破坏,比如通过代码限制Agent只能沿指定方向进入路径,避免出现逆向行驶的逻辑冲突。

内容的提问来源于stack exchange,提问作者Shingston

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 12:05:12