2D аниматор на основе ScriptableObject

Наш нехитрый аниматор, в первую очередь, предназначен для двухмерных игр, где нужно выполнить последовательность смены спрайтов. Иными словами, если, например, у нас есть некий персонаж, состоящий из набора целых кадров, то для создания анимации, нужно просто менять спрайты с определенной скоростью. Разумеется, стандартный аниматор, легко справится с этой задачей. Но, что если объектов анимации множество, как оптимизировать процесс? Для этого мы предлагаем свой вариант, легкого аниматора, без лишних функций, его задача только воспроизводить массивы спрайтов с заданными параметрами, при этом все аниматоры на сцене будет обновляться через один Update.


Для удобства работы с аниматором, в комплекте идет редактор анимаций, удобный и легкий в освоении. Более подробно о том, как им пользоваться, можно посмотреть в видео выше.

Обозначим базовые вещи. Скрипт Simple2DAnimator нужно вешать на объект спрайта, данный скрипт аниматора обрабатывает данные, созданные в редакторе, а для управлением самим аниматором, используем любой другой скрипт с набором необходимых инструкций. Все примеры присутсвтвуют в проекте. Важно отметить, что аниматор работает с интерфейсом, для передачи событий анимации.

Когда мы создаем класс для управлением аниматором, то можем там прописать интерфейс:

public class Example : MonoBehaviour, ISimple2DAnimator
{
    void ISimple2DAnimator.OnAnimatoinEvent(string animatoinName, int animatoinID, string eventString, float eventFloat, int eventInt)
    {
        // событие анимации
    }

    void ISimple2DAnimator.OnAnimatoinEnd(string animatoinName, int animatoinID)
    {
        // вызывается в конце каждой анимации
    }
}

Обратите внимание, что для работы интерфейса, этот скрипт должен быть на том же объекте, где скрипт аниматора. Кроме того, можно использовать только один экземпляр интерфейса, чего вполне достаточно для последующей обработки.



Еще одна важна деталь, на сцене должен присутствовать скрипт Simple2DAnimatorManager, он нужен для работы всех аниматоров.

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

Скачать проект:
https://boosty.to/null-code/posts/f48bfff8-75fb-4026-abc1-5486f51bc2e6
Тестировалось на: Unity 2019.3.0
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
  • Яндекс.Метрика