SubSequence
SubSequence(特效)是一种特殊的 Actor,它可能会包含各种渲染资源。
它可以被播放,播放中各种渲染资源会按照编排好的顺序出现。
特效会有不同的模板,这些模板是由 SubSequence 的子类实现的。
import { SubSequence } from '@xverse/core'
// 创建灯光特效
const subSeq = world.spawn(SubSequence)
subSeq.init('sequence url').then(() => {
subSeq.play()
})
相关事件:特效开始播放、停止播放等会有事件触发:
/**
* 特效加载完毕
*/
endLoading: never
/**
* 特效动画开始播放
*/
animPlay: never
/**
* 特效动画结束播放
*/
animEnd: never
/**
* 特效动画循环一次
*/
animLoop: never
subSeq.on('animEnd', () => {
// 播放结束 do sth...
})
绑定多媒体资源 XMediaSource
特效中子 mesh 可以绑定上多媒体资源以在物体表面展示多媒体效果,实现案例:在墓碑上自定义刻字
多媒体资源的初始化参考 RichSurface章节
/**
* 在子 mesh 上展示多媒体资源,注意调用会覆盖子 mesh 的材质
* @param subMeshName 子 mesh 名称
* @param mediaSource 多媒体资源
*/
subSeq.linkMediaSourceWithSubMesh("SM_Name", textword);
SpriteRain
SpriteRain(红包雨)本质是特效的一种特殊实现。实现时只需要传入红包雨的资产和配置相关参数进行初始化,就可以播放了。
import { SpriteRain } from '@xverse/core'
interface ISetRain {
sky: IPoint
ground: IPoint
speed?: number
size?: number
rainNumber?: number
radius?: number
rotateSpeed?: number
}
const spriteRain = world.spawn(SpriteRain)
spriteRain.setRain(params as ISetRain).then(() => {
spriteRain.play()
})