在 Unity 中制作游戏并获得 ArgumentOutOfRangeException:索引超出范围

问题描述 投票:0回答:0

Unity做游戏遇到问题

ArgumentOutOfRangeException:索引超出范围。必须为非负数且小于集合的大小。 参数名称:索引 System.Collections.Generic.List`1[T].get_Item(System.Int32 索引)(位于:0) GameController.Update ()(位于 Assets/Scripts/GameController.cs:95)

项目中有很多错误,但就是这个,根本让项目跑不起来。错误本身应该在第 95 行。

private void Update() {
        if((Input.GetMouseButtonDown(0) || Input.touchCount > 0) && cubeToPlace != null && allCubes != null && !EventSystem.current.IsPointerOverGameObject()) {
#if !UNITY_EDITOR
            if (Input.GetTouch(0).phase != TouchPhase.Began)
                return;
#endif

            if(!firstCube) {
                firstCube = true;
                foreach (GameObject obj in canvasStartPage)
                    Destroy(obj);
            }

            GameObject createCube = null;
            if (posibleCubesToCreate.Count == 1)
                createCube = posibleCubesToCreate[0];
            else
                **createCube = posibleCubesToCreate[UnityEngine.Random.Range(0, posibleCubesToCreate.Count)];**

            GameObject newCube = Instantiate(
                createCube,
                cubeToPlace.position,
                Quaternion.identity) as GameObject;

            newCube.transform.SetParent(allCubes.transform);
            nowCube.setVector(cubeToPlace.position);
            allCubesPositions.Add(nowCube.getVector());

c# unity3d
© www.soinside.com 2019 - 2024. All rights reserved.