Я начал работу над новой игрой, и я хочу сделать буквы из листа спрайтов, которые меняются с учетом буквы или цифры, которую я им даю. Я создал только лист спрайтов только в Photoshop, чтобы проверить его и импортировать в Unity как Sprite. Тогда в сценарии я сделал это:C# Unity - Изменение спрайта из листа спрайтов
public string currLetter;
public string lettersName;
Sprite[] lettersAll;
void Awake() {
lettersAll = Resources.LoadAll<Sprite> ("Textures/" + lettersName);
}
void Update() {
switch (currLetter) {
case "0":
gameObject.GetComponent<SpriteRenderer>().sprite = lettersAll[0];
break;
case "0":
gameObject.GetComponent<SpriteRenderer>().sprite = lettersAll[1];
break;
}
}
Я получаю сообщение об ошибке в операторе переключателя, где, если это, например, номер 1, это говорит о том, что индекс массива выходит за пределы диапазона, и когда я установил lettersAll публике было 0 спрайтов. Что я делаю не так ? Я пытался исправить это весь день, но ничего не работает:/
Обновление:
Изображение Sprite Sheet:
Похоже, что 'Resources.LoadAll' терпит неудачу. Вы можете это доказать, выполнив 'Debug.Log (lettersAll .Length);' в функции 'Resources.LoadAll'. Дайте мне знать султ этого журнала. Кроме того, в какой каталог вы поместили текстуры? Кроме того, выберите «Текстура» и поставьте для него изображение параметров импорта. – Programmer
Папка «Текстуры» находится в разделе «Проекты/Название проекта/Активы» и «Параметры импорта», о которых стоит упомянуть, заключается в том, что я изменил ее на Sprite и установил режим Sprite на Multiple, чтобы я мог вырезать буквы, все остальное находится в deffault. –