Active是Yuka js库中一个Trigger的类型。它可以在制定的时间间隔内执行一系列的动作。
new Active( event, startTime, duration, delay, repeat, action )
event
:String类型,必需,事件名称,用于区分不同的Trigger类型。startTime
:Number类型,可选,动作开始的时间,以毫秒为单位,默认值为0。duration
:Number类型,可选,动作的持续时间,以毫秒为单位,默认值为0。delay
:Number类型,可选,动作之间的延迟时间,以毫秒为单位,默认值为0。repeat
:Number类型,可选,动作的重复次数,默认为0,表示不重复。action
:Function类型,必需,当Trigger被触发时,要执行的动作。enabled
:Boolean类型,可读写,表示Trigger是否启用。update( deltaTime )
:更新Trigger的状态。reset()
:重置Trigger状态为默认值。clone()
:克隆当前Trigger实例。下面的示例显示了如何使用Active Trigger在两个场景之间切换:
const scene1 = new Scene();
const scene2 = new Scene();
const switchScenes = new Active(
'switchScenes',
0,
3000,
1000,
Infinity,
( entity, time ) => {
scene2.entities.push( entity );
scene1.remove( entity );
scene1.systems[ 0 ].setEnabled( false );
scene2.systems[ 0 ].setEnabled( true );
}
);
const entity = new Entity();
scene1.add( entity );
switchScenes.event.emitter = entity;
switchScenes.reset();
switchScenes.enabled = true;
在此示例中,我们创建了一个Active Trigger,用于在场景之间切换实体。Trigger执行的动作包括将实体从第一个场景中移除,并将其添加到第二个场景中。我们还在Trigger上设置了一些参数,例如开始时间、持续时间、延迟时间和重复次数。最后,我们将Trigger启用,并将实体添加到第一个场景中。Trigger将在指定的时间间隔内周期性地执行动作,直到我们将其禁用或删除为止。