Суббота, 04 Мая 2024, 21:02

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Автоматическая инициализация спрайтов в Unity
Автоматическая инициализация спрайтов в Unity
alexsilentДата: Воскресенье, 14 Марта 2021, 05:09 | Сообщение # 1
почти ветеран
Сейчас нет на сайте
При загрузке набора спрайтов, и нарезании картинки на спрайты, мы всё ещё не можем получить доступ к этим спрайтам,
пока не объявим какой-нибудь переменной, чтобы пользоваться самим спрайтом:
Код
public Sprite[] mySprite; // например объявить через массив

Но объявляя так вручную спрайты, перенося спрайты из ассетов в переменную массива mySprite,
я могу случайно ошибиться, если спрайтов очень много и их нужно в строжайшем порядке раскидывать.

Можно ли как-то автоматически спрайты закреплять в массив, чтобы уже можно пользоваться этими спрайтами в коде?
Ибо вручную это слишком долго и могут быть ошибки, я собираюсь добавлять до 23 наборов спрайтов на одну кастомизацию, а кастомизаций будет очень много. Где-то в среднем спрайтов будет около 1000-2000 штук, и они ещё должны быть в конкретном порядке стоять, чтобы случайно что-то не перепутать.

Другими словами мне нужно автоматически кодом перенести из группы спрайтов в массив переменной, чтобы получить доступ к самим спрайтам, а не вручную через Drag n Drop.

PS В Game Maker Studio например доступ к спрайту получаем сразу и легко, и не нужно проводить эту операцию
присваивания спрайтов к переменным, там это всё автоматически происходит.
Например загрузив набор спрайтов s_MySprite, то мы сразу в коде можем вызвать эти спрайты:
Код
draw_sprite(s_MySprite,5,x,y); // где нам нужен был пятый спрайт из массива спрайтов s_MySprite


Вроде бы Юнити должен быть проще в автоматизации, но пока-что я не знаю как это сделать.
drcrackДата: Воскресенье, 14 Марта 2021, 11:40 | Сообщение # 2
старожил
Сейчас нет на сайте
Цитата
я могу случайно ошибиться, если спрайтов очень много

Можно ж все выделить и перенести кучей (для этого надо инспектор заблокировать чтобы он проигнорировал новое выделение, иконка замка вверху справа)
killing002Дата: Воскресенье, 14 Марта 2021, 11:42 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Как вариант юзать атласы.
Код

public SpriteAtlas atlas;
Sprite[] sprites = atlas.GetSprites();

Но тут придется drag n drop'ать атлас, но это лучше чем делать это со всем массивом спрайтов


123

Сообщение отредактировал killing002 - Воскресенье, 14 Марта 2021, 12:12
Форум игроделов » Движки для разработки игр и сложные системы разработки » Unity » Автоматическая инициализация спрайтов в Unity
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг