unity3d - 让敌人攻击建筑物的表面,而不是中心
问题描述
在我的游戏中,玩家必须保护建筑物免受敌人的攻击。地面敌人在建筑物周围随机生成,他们都走向建筑物开始用他们的斧头攻击它:
agent.SetDestination(target.position);
target.position
是建筑对象的位置。
敌人试图到达建筑物的中心当然是有道理的,但他们应该攻击表面。我尝试添加
if (distance <= attackDistance)
确保敌人尊重最小距离,但由于建筑物不是球体,因此效果不佳。
这样做的正确方法是什么?
解决方案
您可以在建筑物周围放置空的游戏对象作为小“攻击点”
但是更合适的方法是让敌人在检测到与墙壁的碰撞时进入攻击状态。
除此之外,我不太确定你的意思。他们是在攻击建筑物周围的一个大院吗?他们只是用斧头在建筑物的墙壁上砸吗?
如果您提供更多信息,我可以进一步帮助您。
推荐阅读
- python - TensorFlow 中的逐行相关
- python - Django 过滤器。什么更有效 - .filter(date__range) 或 .all() 并通过 Python 过滤
- python - 使用谷歌云Text2Speech时如何选择复音字(中文)的读音?
- asp.net-core - MassTransit ISendEndpoint.Send method doesn't throw exception when RabbitMQ is unreachable
- c# - 如何使用 .NET 5 获取跨平台系统型号名称?
- c# - 在 Asp.net 核心中本地化 DataAnnotations
- flutter - 如何在颤动中获得两次之间的时间?
- docker - 容器不再可以从外部访问(尽管 localhost 有效)
- android - Android 房间数据库迁移
- deep-learning - pyTorch中Dataset和TensorDataset的区别