Unity中的空数组?

时间:2016-06-11 14:14:15

标签: c# arrays unity3d

我正在针对我的程序中的错误进行一些强力解决方法,因为似乎并不是刷新编辑器中分配的值的方法。无论如何,我试图将图像(精灵)加载到另一个脚本可以使用的数组中。但是,它似乎不起作用,我不知道为什么。我之前没有做过这样的事情,所以我可能犯了一个简单的错误。错误是说pics1 [i]超出范围。以下是我的代码:

using UnityEngine;
using System.Collections;

public class Imageblock : MonoBehaviour {

public Sprite[] pics1;
public static Sprite[,] allPics;

// Use this for initialization
void Start () {
    pics1 = Resources.LoadAll<Sprite> ("Dock Pics");
    allPics = new Sprite[100,100];
    for (int i = 0; pics1 [i] != null; i++) {
        allPics [1,i] = pics1 [i];
    }
}

}

1 个答案:

答案 0 :(得分:0)

将你的for循环更改为:

for(int i = 0; i < pics1.Length; i++)

这可能已经成功了。如果你检查pics1 [900]它将不会返回null,但它会抛出IndexOutOfRangeException,这就是你想要事先检查现有索引的原因。当然,在有效范围内,pic1 [i]可能会返回null,如果定义了索引,但没有分配任何元素。