Unity-检查对撞机内的对象

时间:2018-06-24 02:56:51

标签: c# unity3d unityscript

我目前正在从事游戏设计。我是Unity的新手,不知道如何为我的项目实现以下功能。

我的方形游戏板上有几个球,并且玩家能够在游戏板上画线。这些线条必须附加到游戏板的边界或其他线条上,这些边界可以将游戏板分成几小块(类似于游戏Jezzball)。我的问题是如何检测每个小区域内的球数。

How to detect balls in each area? 感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

您应该问“对于每个球,该球位于哪个区域。”而不是询问“如何检测每个小区域内的球数”。

我认为这对您来说不是一个很好的问题,因为它是一个相对简单的编程问题(我希望如此),但是它是一个非常棘手的几何问题。最难的部分将是定义区域。

话虽这么说,这是我如何解决数学问题:

将每条线建模为线性方程式:y = mx + c。将定义一个受方程影响的区域,以及y是>还是<线的y值。这基本上意味着将每个区域定义为一系列数学约束。

要测试某个点是否在一个区域内,对于该区域的每个约束,请将该点的x值输入到方程式中,然后将该点的y值与该x值处的线的y值进行比较。如果该点满足每个约束,则认为该点在该区域内。

要查找点位于哪个区域,只需对每个区域应用此过程,直到返回true。然后将该点添加到该点列表中。然后,您只需计算每个区域的点数即可。

如果这看起来很困难,那是因为。我建议暂时搁置。