【发布时间】:2021-09-30 16:02:54
【问题描述】:
它是 Unity C#。我的代码有问题。我的目标是将cubePositions 保留在我稍后将使用的列表中。我以一种奇怪的方式保持它。我使用了 Vector3,但它给了我同样的错误。我收到错误:ArgumentOutOfRange。我最好的猜测是该值替换了最后一个。此外,我所有的游戏对象都称为相同的。 print() 不是问题。
谢谢!!!
这是我的代码:
public class MapAccess : MonoBehaviour
{
List<float> cubePositionsX = new List<float>();
List<float> cubePositionsZ = new List<float>();
void Start()
{
foreach (GameObject cube in GameObject.FindGameObjectsWithTag("Cube"))
{
cubePositionsX.Add(cube.transform.position.x);
cubePositionsZ.Add(cube.transform.position.z);
print(cubePositionsX[0]);
print(cubePositionsX[1]); //The problem is here. Unity said that ArgumentOutOfRange
}
【问题讨论】:
-
您想要获取列表的第二个元素,尽管您只向列表添加了一个值 (x)。 y 被添加到另一个列表中
-
cubePositionsX 只有 1 个元素。
-
您只向
cubePositionsX添加了一个元素,因此您无法访问索引1(这将是第二个元素)z被添加到cubePositionsZ并且可以通过以下方式访问cubePositionsZ[0]