CottePutman 2021-04-02 18:04
浏览 20

Unity中访问GameObject对象会出现IndexOutOfRangeException报错

主要涉及的函数就是下面这一段

 void Start()
    {
        Floors = new GameObject[transform.childCount];

        for(int i=0; i<transform.childCount; i++)
        {
            Floors[i] = transform.GetChild(i).gameObject;
        }

        keyCodes = new KeyCode[] { KeyCode.Alpha1, KeyCode.Alpha2, KeyCode.Alpha3, KeyCode.Alpha4, KeyCode.Alpha5 };
    }


void InputDealer()
    {
        for (int i=0; i<keyCodes.Length; i++)
        {
            var key = keyCodes[i];

            if (Input.GetKey(key))
            {
                //报错的一行代码
                Debug.Log("Name: " + Floors[i].name);
            }
        }
    }

奇怪的是Debug窗口也能正确显示Floors[i]的名称,按理来说应该是成功访问到了这个对象才对,但是还是会出现以下的报错:

想知道究竟是什么原因导致了这个报错。。。

PS. 图片里的Nams是我打错了 

 

 

问题解决了。。。我在场景里放了两个Controller,Debug的时候没有注意运行域,导致我一直在盯着好的那个Controller

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 如何在炒股软件中,爬到我想看的日k线
    • ¥15 51单片机中C语言怎么做到下面类似的功能的函数(相关搜索:c语言)
    • ¥15 seatunnel 怎么配置Elasticsearch
    • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
    • ¥15 (标签-MATLAB|关键词-多址)
    • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
    • ¥500 52810做蓝牙接受端
    • ¥15 基于PLC的三轴机械手程序
    • ¥15 多址通信方式的抗噪声性能和系统容量对比
    • ¥15 winform的chart曲线生成时有凸起