如果没有图层任务unity3d,命中率不是我们想要的,如何继续光线投射



我正在制作塔防游戏,为了避免敌人相互穿越,我使用光线投射来确定他们之间的距离。目前,一切都很好,但我想让速度更快的敌人能够穿过速度较慢的敌人(所以只检查类似敌人的距离(。问题是,我的敌人类型比图层多,而且敌人都在同一条路径上(所以光线投射经常被错误的敌人拦截,然后停止。我想找到一种方法让它通过(。

情况示例:

敌方1--敌方2--敌方3-

enemy1发射一条射线来计算他和enemy3之间的距离,但该射线被enemy2拦截。

如果发射射线的敌人不是同一类型,我该如何让射线穿过敌人2?

我希望我的问题足够清楚,如果不是,请告诉我。提前谢谢。

对于2D物理学,Physics2D.Raycast有多个重载,其中一些重载以RaycastHit2D的数组或列表作为参数,函数会立即填充。

对于3D物理,Physics.RaycastAll将返回一个RaycastHit数组。请注意,此函数的结果不会按顺序排列,因此您可能希望按距射线原点的距离对结果列表进行排序。

事实上,仔细一看,还有一个我不知道的Physics2D.RaycastAll。我一直在使用Physics2D.Raycast的重载。你每天都学到一些新东西。

最新更新