【问题标题】:Unity 2D - A* Pathfinding how can I make seekers avoid other seekers?Unity 2D - A* Pathfinding 如何让搜索者避开其他搜索者?
【发布时间】:2023-01-27 09:45:14
【问题描述】:

使用 Aron Granberg A* 寻路资产开发 Unity 2D 自顶向下游戏。有谁知道我怎样才能让带有搜索者脚本的敌人互相避开?目前他们会聚在一起,我想避免这种情况。

在下面的照片中,您可以看到显示 AI Destination Setter 目标的绿线。它正确地跟随玩家,但右边的立方体正试图直接穿过红色立方体。我怎样才能改变它,让探索者互相避开但仍然跟随玩家?

    public class AIDestinationSetterHyperius : VersionedMonoBehaviour {
    /// <summary>The object that the AI should move to</summary>
    public Transform target;
    IAstarAI ai;

    public void OnEnable () {
        target = GameObject.FindWithTag("Player").transform;
        ai = GetComponent<IAstarAI>();

        if (ai != null) ai.onSearchPath += Update;
    }

    public void OnDisable () {
        if (ai != null) ai.onSearchPath -= Update;
    }

    /// <summary>Updates the AI's destination every frame</summary>
    public void Update () {
        if (target != null && ai != null) ai.destination = target.position;
    }
}

【问题讨论】:

    标签: unity3d path-finding


    【解决方案1】:

    如果我理解正确的话,看起来你想要local avoidance,它只在包的专业版中可用。

    【讨论】:

    • 乍一看,这似乎正是我要找的东西!太感谢了!我会读到这个。
    【解决方案2】:

    我是 unity 的菜鸟,所以我的方法可能不好。不久前,我设法让这个工作。所以我在应该避免的列表中添加了寻求者的层,然后修改了 A* 扫描障碍物的脚本,使扫描不仅在开始而且以一定的速度进行。试验扫描速率,直到它在性能上变得精简,但仍然可以完成它的工作。我的项目很小,所以我没有遇到任何问题,帧率也没有下降。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      • 1970-01-01
      • 1970-01-01
      • 2017-03-26
      • 2021-08-04
      相关资源
      最近更新 更多