我应该使用碰撞器进行Unity RTS游戏攻击范围检测吗

问题描述 投票:0回答:1

我正在尝试使用 Unity 制作 RTS 游戏。我目前有一个有效的攻击范围检查方法,可以通过

检查目标是否在攻击范围内
if(target.colliderSize/2 + unit.attackRange >= Distance(unit, target))

如果目标有一个胶囊碰撞器,这意味着从它的中心到它的边缘的距离是相同的,那么这工作得很好,但是如果目标有一个盒子碰撞器(我的结构),从中心到边缘和角的距离是不一样的。该装置将避开结构的角落,因为该位置仍然超出范围。我正在考虑使用触发碰撞器来表示攻击范围,当它们碰撞时,它们就在范围内。这个方法有效吗?另外,既然是RTS游戏,单位数量就会很多,会不会严重影响性能?

unity-game-engine mesh-collider
1个回答
0
投票

老实说,你可以使用任何最适合碰撞检测的方法,在过去我如何处理碰撞(在我的例子中,它是在 VR 中造成近战伤害时针对敌人的),我使用过触发器/碰撞器等有各种不同的尺寸。

对于性能方面,至少从我的经验来看,碰撞和触发碰撞器不会触发每一帧,因此它们不会在这方面造成任何问题。如果您正在做的事情是一次性检查敌人或物体是否靠近单位,那么这应该不会太糟糕。如果您使用图层,您可以采取一些措施来减轻碰撞或触发,例如,让特定对象碰撞/触发将有助于减轻条件检查。

© www.soinside.com 2019 - 2024. All rights reserved.