单位流动问题
 
Notifications
Clear all

单位流动问题

1 帖子
2 Users
0 Reactions
15 查看
0
Topic starter

前方单位进入战斗状态,后方单位会被挡住,不会绕到前面去,是因为取消了流动效果导致的吗,能怎么处理。


1 Answer
0

更新:

新版本已经支持流动性可配置,RVOConst.cs用于专门配置微调效果,RVOConst.MOVE_FLUIDITY是RVO单位移动流动性,取值范围0~1,数值越大流动性越强。

插件更新地址: https://assets.efunstudio.cn

 


以下是原回答:

https://blog.csdn.net/final5788/article/details/142005465?spm=1001.2014.3001.5502#t32

RVO是动态避让系统,设置rvo agent目标点(targetPosition)后会自动向目标点移动避让,单位之间不允许穿透(可简单理解为物理刚体), 每个单位的碰撞半径radius可设置,如果前方被一排单位完全挡住,则会挡住无法通过,直到前方无阻塞。仅当前排单位之间的间距足够通行,后方单位才能通过。

解决方法:

1. 设置rvo agent的碰撞半径radius,降低半径可以通过更窄的通道。

2. 设置rvo agent的timeHorizon,降低数值可以使rvo agent之间距离拉近,密度提升。

3. 设置rvo agent的collisionEnabled为false可以关闭rvo agent的碰撞, 关闭后可穿透。

4. 为rvo agent分层,精准控制哪些兵种之间不发生碰撞,例如可以设置boss不与小兵发生碰撞,以避免前方小兵挡住boss移动。

通过设置layerOccupation:RVO单位分层,与layerIgnore配合用于精准控制不同层之间是否碰撞。
layerIgnore:设置忽略碰撞的单位layer类型。该参数为位枚举,可精准控制忽略一种或多种单位之间的碰撞。如rvoA.layerOccupation = L0, rvoB.layerOccupation = L1; rvoA.layerIgnore = L1表示rvoA不与rvoB碰撞

备用方案:

1. 回退旧版本,使用流动性高的rvo版本。

2. 将流动性高的rvo版本合并到新版。


您的答复

Author Name

Author Email

Your question *

文件不超过 5MB

 
Share:

滚动至顶部