首页 > 解决方案 > 让敌人攻击建筑物的表面,而不是中心

问题描述

在我的游戏中,玩家必须保护建筑物免受敌人的攻击。地面敌人在建筑物周围随机生成,他们都走向建筑物开始用他们的斧头攻击它:

agent.SetDestination(target.position);

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

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

if (distance <= attackDistance)

确保敌人尊重最小距离,但由于建筑物不是球体,因此效果不佳。

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

标签: unity3d

解决方案


您可以在建筑物周围放置空的游戏对象作为小“攻击点”

但是更合适的方法是让敌人在检测到与墙壁的碰撞时进入攻击状态。

除此之外,我不太确定你的意思。他们是在攻击建筑物周围的一个大院吗?他们只是用斧头在建筑物的墙壁上砸吗?

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


推荐阅读