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

时间:2019-02-16 14:05:53

标签: unity3d

在我的游戏中,玩家必须保护建筑物免受攻击。地面敌人在建筑物周围的任意地方产生,他们都朝建筑物走去,开始用自己的斧头攻击建筑物:

agent.SetDestination(target.position);

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

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

if (distance <= attackDistance)

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

执行此操作的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

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

但更合适的方法是当敌人检测到与墙壁发生碰撞时,他们会进入攻击状态。

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

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