내 프로그램의 버그에 대해 약간의 무차별 대책을 세우고 있습니다. 편집기에 할당 된 값을 새로 고치는 방법이 없기 때문입니다. 어쨌든, 다른 스크립트에서 사용할 수있는 배열에 이미지 (스프라이트)를로드하려고합니다. 그러나, 그것은 작동하지 않는 것 같아요 왜 모르겠어요. 나는 이런 실수를 한 적이 없기 때문에 아마도 실수를했을 것입니다. 오류는 pics1 [i]이 범위를 벗어났습니다. 대한 루프 이것에Unity에 빈 배열이 있습니까?
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];
}
}
}
"검사기의 값을 새로 고치는 중"의 문제점은 무엇입니까? Public 필드는 직렬화 될 것이므로 inspector에 의해 초기화되며, inspector에서 public 필드를 변경하면 inspector에 의해 무시되지만 런타임에 코드에서 덮어 쓸 수도 있습니다. – Xarbrough
동일한 코드의 인스턴스가 여러 개 있기 때문에 초기화가 아닌 코드의 관리자에서 데이터를 가져와야합니다. – MechaScoots