Я использую A-Frame и пытаюсь сгенерировать пул из нескольких «облачных» сущностей, которые будут медленно начинать движение в определенном направлении после активации, но функция tick()
, похоже, не вызывается!Есть ли способ запустить его или мне нужно управлять им вручную?
Вот настройки, которые я использую для тестирования с 1 облаком:
HTML
<a-assets>
<a-mixin id="cloud" cloud></a-mixin>
</a-assets>
<a-entity
cloudmanager
pool="mixin: cloud; size: 1;">
</a-entity>
cloudmanager.js
AFRAME.registerComponent("cloudmanager", {
init: function(){
const cloudEl = this.el.components.pool.requestEntity();
cloudEl.components.cloud.startMoving();
}
});
cloud.js
AFRAME.registerComponent("cloud", {
//LIFECYCLE
//-----------
init: function(){
this.startMoving = this.startMoving.bind(this);
this.moving = false;
// ...and then create the cloud geometry etc etc
},
tick: function(time, deltaTime){
console.log("tick"); //never happens!
if(this.moving) this.move(deltaTime);
},
//UTILS
//-----------
startMoving: function(){
console.log("starting to move!"); //logs ok
this.moving = true;
},
move: function(deltaTime){
// translations etc etc
}
});
Облако создается нормально(подтверждается ведением журнала и появляется в сцене), ему говорят, что он должен начать двигаться нормально (подтверждается ведением журнала), но console.log
внутри tick()
просто никогда не срабатывает, и поэтому я не могу заставить облако двигаться!
Правильно ли я использую бассейн?Или это просто оптимизация, чтобы объединенные сущности не тикали, даже если они не используются?Нужно ли активировать их каким-либо образом?
Любая помощь будет принята с благодарностью!Спасибо всем.
-p