Анимационные события
Анимационные события могут использоваться для вызова слушателей событий во время воспроизведения анимации. Каждое событие связано с определенным кадром анимационного ассета, к которому оно прикреплено. Когда воспроизведение анимации достигает этого кадра, событие срабатывает, и вызывается соответствующий слушатель событий.
Создание событий
Чтобы создать новое событие, выберите анимационный ассет в панели ассетов, для которого вы хотите создать событие. Затем вы должны увидеть кнопку
+ EVENT
в инспекторе ассетов, как показано ниже:
У каждого события есть следующие изменяемые свойства:
Переменная | Описание |
---|---|
time | Определяет конкретное время воспроизведения анимации, когда должно сработать событие. Задается в секундах. |
name | Имя события используется для идентификации события при присоединении слушателя событий к анимационному компоненту. |
number | Дополнительное свойство, которое может быть установлено на любое число. Используется для передачи дополнительных сведений слушателю событий. |
string | Дополнительное свойство, которое может быть установлено на любую строку. Используется для передачи дополнительных сведений слушателю событий. |
Слушатели событий
После создания события для анимационного ассета событие будет вызываться при воспроизведении этого ассета анимационным компонентом. Таким образом, вы можете присоединить слушателей к анимационному компоненту для обработки события. В следующем примере показано, как присоединить слушателей событий к анимационному компоненту:
var AnimationEvents = pc.createScript('animationEvents');
// инициализация кода, вызываемая один раз для каждой сущности
AnimationEvents.prototype.initialize = function() {
this.entity.anim.on('plant_foot', function (event) {
// получаем кость ноги из строкового свойства события, либо right_foot, либо left_foot
const footBone = this.entity.findByName(event.string);
createDustCloudAtLocation(footBone.getPosition());
}, this);
};
В один анимационный ассет (animation asset) можно прикрепить любое количество анимационных событий, которые могут использоваться любым
количеством компонентов anim. Использование дополнительных свойств number
и string
события позволяет различать
события, передаваемые одному и тому же слушателю событий.