【发布时间】:2017-04-16 12:37:48
【问题描述】:
我的拼图机制有问题,我似乎无法理解。我有一个可以将光束射入端点的塔架,然后这些端点将为其他东西供电。
每个谜题都有多个端点,但没有一个谜题的数量相同,所以我认为最好的方法是使用一个公共列表,然后将其设置为与特定谜题中的所有端点相同的大小。如果拼图有 3 个端点,我会将 3 分配给列表,然后将端点拖放到检查器的插槽中。
我的问题出现在这一点上,因为我现在不知道如何访问列表中游戏对象中的内容,例如检查它们的变换是否光束的光线投射会击中它们,或者访问它们的变量。
以下代码不起作用,因为“if (hit.transform == endPoints.transform)”不正确,但我已经尝试了所有我能想到的方法,并且花了太多时间在谷歌上搜索这个问题。我只是不知道如何继续。
public List<GameObject> endPoints;
void Raycaster()
{
RaycastHit hit;
Debug.DrawRay(transform.position, transform.forward * rayDistance, Color.red);
if (Physics.Raycast (transform.position, transform.forward * rayDistance, out hit)) // Check the raycast
{
if (hit.transform == endPoints.transform) // Does it hit the specified object?
{
Debug.Log ("It hit the thing");
}
else
{
Debug.Log ("It did not hit the thing");
}
}
}
【问题讨论】:
-
您可以像访问数组元素一样访问列表元素。如果你不清楚,我会发布一个详细的答案。
-
对,这让我更进一步。搜索数组比搜索列表要容易得多。现在我可以访问它,但只能访问我自己指定的一个特定的。我不确定如何使其更具动态性,或者在这种情况下,光线投射命中列表的哪个元素并不重要。所有端点都必须工作。
-
好的,请稍等,我会发布答案。