Вы должны использовать Атлас Спрайта. Кроме того, я вижу, что ваши спрайты имеют статическую переменную, что не очень хорошая идея, это может вызвать некоторые утечки памяти и показать неправильный спрайт. Это уже случилось со мной.
Вы спросили меня в комментарии, как случайным образом назначить Атлас Sprite объекту-монстру. Вы должны использовать этот ответ , чтобы получить один спрайт. Тогда вам, вероятно, придется переименовать вашего монстра в «monster-1», ... «monster-777», а затем написать что-то вроде:
void Start()
{
AtlasLoader atlasLoader = new AtlasLoader("monsters");
for(int i = 1; i <= atlasLoader.atlasCount(); i++) {
int randomInt = Random.Range(1, atlasLoader.atlasCount());
// probably check if this int isn't already used to avoid duplicates
Sprite ball = atlasLoader.getAtlas("monster-" + randomInt);
// Assign this ball to your monster
}
}
конечно, это псевдокод, я не тестировал его, и вам нужно заменить комментарии своим собственным кодом.