Что это: Компонент является центральной точкой для управления Spine-анимациями на объекте. Он требует наличия SkeletonAnimation и автоматически получает ссылки на него.
Как использовать: см. разделы ниже.
Важно: Для работы этого компонента требуется установленный пакет Spine Unity Runtime. Если он отсутствует, компонент будет отключен и выведет предупреждение.
SpineController — это высокоуровневая обертка для SkeletonAnimation из пакета Spine. Он предоставляет удобный API для управления анимациями, скинами и их состоянием. Компонент автоматизирует многие рутинные задачи, такие как:
- Получение списка всех доступных анимаций и скинов.
- Воспроизведение анимаций по имени или индексу.
- Управление анимацией по умолчанию (idle).
- Переключение скинов и сохранение выбора между сессиями.
- Пространство имен: отсутствует (глобальное)
- Путь к файлу:
Assets/Neoxider/Scripts/Tools/Other/SpineController.cs
Описание
Компонент является центральной точкой для управления Spine-анимациями на объекте. Он требует наличия SkeletonAnimation и автоматически получает ссылки на него.
skeletonAnimation(SkeletonAnimation): Ссылка на основной компонент Spine.skeletonDataAsset(SkeletonDataAsset): Ссылка на ассет с данными скелета.
autoPopulateAnimations(bool): Еслиtrue, списокanimationNamesбудет автоматически заполнен всеми анимациями изskeletonDataAsset.animationNames(List<string>): Список имен доступных анимаций.defaultAnimationName(string): Имя анимации, которая будет проигрываться по умолчанию (в режиме ожидания).defaultAnimationIndex(int): Индекс анимации по умолчанию в списке (если имя не задано).playDefaultOnEnable(bool): Еслиtrue, анимация по умолчанию будет запущена при активации компонента.queueDefaultAfterNonLooping(bool): Еслиtrue, после завершения любой нецикличной анимации будет автоматически запущена анимация по умолчанию.
autoPopulateSkins(bool): Еслиtrue, списокskinNamesбудет автоматически заполнен всеми скинами.skinNames(List<string>): Список имен доступных скинов.defaultSkinIndex(int): Индекс скина по умолчанию.persistSkinSelection(bool): Еслиtrue, выбранный скин будет сохраняться вPlayerPrefsи восстанавливаться при следующем запуске.skinPrefsKey(string): Ключ для сохранения индекса скина вPlayerPrefs.skinIndexOffset(int): Смещение для индекса скина. Полезно, если первые скины в списке являются служебными и не должны быть доступны для выбора.
Animations(IReadOnlyList<string>): Список только для чтения всех имен анимаций.Skins(IReadOnlyList<string>): Список только для чтения всех имен скинов.SkeletonAnimation(SkeletonAnimation): Прямой доступ к компонентуSkeletonAnimation.CurrentAnimationName(string): Имя текущей проигрываемой анимации.CurrentSkinIndex(int): Логический индекс текущего скина (с учетом смещения).CurrentSkinName(string): Имя текущего скина.
Play(int animationIndex, bool loop, ...): Проиграть анимацию по индексу.Play(string animationName, bool loop, ...): Проиграть анимацию по имени.PlayDefault(bool forceRestart): Проиграть анимацию по умолчанию. ЕслиforceRestartравноtrue, анимация перезапустится, даже если она уже играет.SetDefaultAnimation(string animationName): Установить новую анимацию по умолчанию по имени.SetDefaultAnimationByIndex(int animationIndex): Установить новую анимацию по умолчанию по индексу.Stop(): Остановить все проигрываемые анимации.
SetSkin(string skinName): Установить скин по имени.SetSkinByIndex(int skinIndex): Установить скин по его логическому индексу.NextSkin(): Переключиться на следующий скин в списке.PreviousSkin(): Переключиться на предыдущий скин в списке.
OnSwapSkin: Событие, которое вызывается каждый раз при смене скина. Полезно для обновления других элементов UI, зависящих от скина.