Unity - Как изменить спрайт-лист игрока во время выполнения? - PullRequest
0 голосов
/ 29 ноября 2018

В настоящее время я работаю над 2D пикселем Jump'n'Run.Я хочу, чтобы игрок мог "покупать" новые скины для игрока-персонажа.У меня есть несколько спрайт-листов.Все они имеют одинаковую структуру.Я использую спрайт-анимацию.

Как я могу изменить спрайт-лист во время выполнения?Я нашел следующее решение, но оно очень ресурсоемкое: https://youtu.be/HM17mAmLd7k?t=1818

С уважением, Джулиан

1 Ответ

0 голосов
/ 30 ноября 2018

Причина, по которой это так ресурсоемко в видео, заключается в том, что все спрайты загружаются в каждый LateUpdate(), то есть один раз на кадр.Сценарий выглядит так, как будто он захватывает все спрайты в листе спрайтов и загружает их каждый кадр, так что если spriteSheetName когда-либо изменится, он обновит рендерер в следующем кадре.

Я не верю, что это необходимо, и в видео он упоминает, что оно используется только в качестве примера.Я бы переместил его из метода LateUpdate() в его собственный метод, который можно вызывать только тогда, когда пользователь хочет изменить спрайт-лист.Таким образом, вместо бессмысленной загрузки спрайтов из листа спрайтов в каждом кадре, вы будете загружать их только тогда, когда пользователь их выберет.

Это должно значительно сократить интенсивность этого сценария, поскольку вы загружаете не все спрайты в лист спрайтов и не просматриваете все их средства визуализации в каждом отдельном кадре.

...