使敌人攻击建筑物的表面,而不是中心



在我的游戏中,玩家必须捍卫建筑物免于攻击敌人。地面敌人在建筑物周围的随机位置产卵,他们都走向建筑物,开始用轴攻击它:

agent.SetDestination(target.position);

target.position是建筑物对象的位置。

当然,敌人试图到达建筑物的中心,但他们应该攻击表面。我尝试添加

if (distance <= attackDistance)

确保敌人尊重最低距离,但是由于建筑物不是一个领域,这不太好。

这样做的正确方法是什么?

您可以在建筑物周围放置空的gameObject,例如"攻击点"

但是,做到这一点的一种更正确的方法是这样做,因此当敌人发现与墙壁发生碰撞时,它们进入了一个攻击状态。

除此之外,我不确定您的意思。他们是在攻击建筑物周围的化合物吗?他们只是在建筑物的墙壁上猛击斧头吗?

如果您提供了更多信息,我可以进一步帮助您。

最新更新