active 是 Yuka.js Behavior 类的一个方法,该方法用于激活一个拥有行为的实体(entity)。
active()
import { Entity, EntityManager, Behavior } from 'yuka';
class SomeBehavior extends Behavior {
constructor() {
super();
}
// override
onUpdate() {
console.log( 'SomeBehavior is active!' );
}
// override
onDeactivate() {
console.log( 'SomeBehavior is inactive!' );
}
}
const entityManager = new EntityManager();
const entity = new Entity();
const someBehavior = new SomeBehavior();
entity.setBehavior( someBehavior );
entityManager.add( entity );
someBehavior.isActive; // false
// active 状态
someBehavior.active();
someBehavior.isActive; // true
// 等同于
entity.activeBehavior( someBehavior );
someBehavior.isActive; // true
// inactive 状态
someBehavior.deactive();
someBehavior.isActive; // false
// 等同于
entity.deactiveBehavior( someBehavior );
someBehavior.isActive; // false
Behavior.prototype.active = function () {
this.isActive = true;
if ( this.onActivate ) {
this.onActivate();
}
};
Behavior.prototype.deactive = function () {
this.isActive = false;
if ( this.onDeactivate ) {
this.onDeactivate();
}
};