我正在针对我的程序中的错误进行一些强力解决方法,因为似乎并不是刷新编辑器中分配的值的方法。无论如何,我试图将图像(精灵)加载到另一个脚本可以使用的数组中。但是,它似乎不起作用,我不知道为什么。我之前没有做过这样的事情,所以我可能犯了一个简单的错误。错误是说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];
}
}
}
答案 0 :(得分:0)
将你的for循环更改为:
for(int i = 0; i < pics1.Length; i++)
这可能已经成功了。如果你检查pics1 [900]它将不会返回null,但它会抛出IndexOutOfRangeException,这就是你想要事先检查现有索引的原因。当然,在有效范围内,pic1 [i]可能会返回null,如果定义了索引,但没有分配任何元素。