You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity数组越界问题:Canvas复制对象随机整数生成失败

问题解决及代码修正

核心问题分析

  • Inspector数组设置冲突:Unity中public数组若在编辑器面板手动修改过长度,会覆盖代码里的new int[15]初始化逻辑。如果面板里数组长度被设为0,自然看不到任何元素。
  • 循环索引范围错误:原循环从i=1开始到i<15结束,仅填充了14个元素(索引1-14),遗漏了索引0的位置;同时局部变量i遮蔽了公共成员变量i,虽不影响功能,但易造成代码混淆。

修正后的代码

public int[] CPU_Model = new int[15];
public int[] CPU_MHz = new int[15];
public string[] CPU_Vars = new string[15];

public void Start()
{
    // 循环覆盖数组所有索引(0-14),用Length替代硬编码更灵活
    for (int i = 0; i < CPU_Model.Length; i++)
    {
        Debug.Log(i);
        CPU_Model[i] = Random.Range(400, 9999);
        CPU_MHz[i] = Random.Range(1200, 5400);
        CPU_Vars[i] = "CPU" + (i + 1); // 若需从CPU1开始命名则加1,否则直接用i
    }
}

额外操作提示

  • 打开Unity编辑器面板,检查三个数组的长度是否为15,若不是手动改回,或右键数组选择Reset重置为代码初始值。
  • 避免成员变量与局部变量同名,减少后续编码时的逻辑混淆。

内容的提问来源于stack exchange,提问作者Ahmad_Coffee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 05:37:17