gpt4 book ai didi

c# - 如何获取附近攻击的数据来规避?

转载 作者:行者123 更新时间:2023-11-30 17:29:23 24 4
gpt4 key购买 nike

我希望 AI 避免攻击,但不确定如何获取数据。我制作了警告系统,当 warning_box 和角色发生碰撞时会通知 AI。看下图你就明白了

enter image description here

在攻击开始之前部署警告。这是警告类的相关代码

private void OnTriggerEnter(Collider other)
{
CharacterInteractor enemy = other.GetComponent<CharacterInteractor>();
CharacterInteractor atker = attacker.GetComponent<CharacterInteractor>();

if (enemy != null)
// attacker and warned characters are different team
if (attacker == null || enemy.team != atker.team)
enemy.Warn(this);
}
private void OnTriggerExit(Collider other)
{
CharacterInteractor enemy = other.GetComponent<CharacterInteractor>();
CharacterInteractor atker = attacker.GetComponent<CharacterInteractor>();

if (enemy != null)
if (attacker == null || enemy.team != atker.team) // 상대가 적일 때
enemy.WarnOff(this);
}

但是现在仅仅知道什么是危险的是不够的。为了找到最好的避让方向,AI 还需要其他警告的数据。所以我在考虑 2 种样式,但都有问题。

瓷砖系统

enter image description here

Tile 系统在角色周围使用多个碰撞器来找出接触的警告。将安全位置放在瓷砖之间是不好的。

雷达系统

enter image description here

雷达系统对多个半径使用 SphereCast()。我只能知道警告有多近以及警告的中心在哪里,无法获得避免的方向。 (也许我不知道正确的 Unity API)

我不知道如何解决这些问题。有什么解决问题的好方法或例子吗?

最佳答案

我和 friend 讨论了这个问题,得到了比我问的更好的想法。

让自己变得更好

  1. tile 系统,但使用更小、更多的 tile。

降低成本

  1. 使用 5m Sphere Cast 找出警告。如果发现警告,部署磁贴系统矩阵。

关于c# - 如何获取附近攻击的数据来规避?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51185805/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com