Unity2D:使用左模拟摇杆在2D空间中导航

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

我是Unity的初学者,我正在尝试使事情变得非常简单。但是,我不知道从哪里开始。我在场景中有许多“结”,玩家可以选择。然后,他们将能够连接两个结。我设法从玩家的位置找到40个范围内的所有结,并将它们排列成一个阵列。下一步将是“导航”各个结。我希望玩家为此使用左模拟摇杆,但是我不知道该怎么做。当他们将棍棒保持在120°时,可以通过按下另一个按钮来选择最接近该位置的结。我看了一些UI导航脚本,但是这种情况非常不同,因为它是二维空间。有人对此有任何建议吗?谢谢。

screenshot

c# unity3d
1个回答
0
投票

在我看来,您必须做一些三角函数才能找到最接近的“结”。每个对象(至少如果您编程不错的话)都应该是一个对象,其x和y位置变量可以从脚本中访问。

您可以遍历收集到的对象列表,并将它们与当前位置进行比较,如果该对象的距离比数组中的最后一个对象短,则将其存储在一个临时变量中。

这里有一些伪代码应有助于说明我的观点:

for item in array {

    Object closestKnotDist = Null

    Float currentKnotDist = math.sqrt((player.x-item.x)**2 + (player.y-item.y)**2)

    if currentKnotDist < closestKnotDist {
        closestKnotDist = currentKnotDist
    }

}

因此,closestKnotDist将是离播放器最近的对象。按照您的意愿进行操作。

不确定这是否回答了您的问题,但如果不能,请随时添加一些其他说明!

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