Skip to content

创建实例 ​

ts
const effect = await runtime.instantiate(pack, options);

instantiate 先执行与预检相同的检查,有阻塞项时抛出 NatsumeCompatibilityError。检查通过后创建渲染资源并返回 EffectInstance,返回时实例处于 idle 状态,需要调用 play() 才开始播放。

所有选项都是可选的。

选项 ​

选项说明
entryId要播放的入口 ID。省略时使用包的默认入口。
seed粒子随机数的种子,0 到 4294967295 的整数。省略时每个实例随机取一个。
parentLayout父级布局尺寸 { width, height },入口根节点使用拉伸的外部锚点时需要。
particleEnvironment粒子环境,见环境配置。
renderEnvironment渲染环境,见环境配置。
canvasEnvironmentCanvas 环境,见环境配置。
cameraEnvironment相机环境,见环境配置。
displayMatrix初始显示矩阵,见环境配置。
sourceColorSpace源项目的色彩空间,'gamma' 或 'linear'。
subEmitterUpdateOrder共享子系统的执行顺序,见粒子系统。
maxTrailPoints实例内拖尾历史点的上限,见粒子系统。

入口 ​

一个包可以包含多个入口,每个入口有自己的根节点。实例只创建所选入口下的节点。入口的 ID 和名称可以从 pack.document.entries 读取,实例创建后可以通过 effect.entry 查看当前入口。entryId 不存在时抛出 HOST 错误。

种子 ​

相同的包、相同的选项和相同的 seed 会让粒子的随机通道产生相同的序列,方便复现问题或做截图对比。省略 seed 时,每次创建的实例随机取值,每次播放的出生结果都不同。

Natsume 的随机序列与 Unity 原生种子产生的序列不同,所以固定种子也不会得到与 Unity 一致的粒子出生结果。实例化时会因此给出 NATSUME_RANDOM_SEQUENCE 诊断。

重力 ​

重力通过 particleEnvironment.gravity 提供。InstanceOptions 里还有一个顶层的 gravity 字段,只在 particleEnvironment.gravity 缺失时作为回退值使用,新代码不需要它。

基于 Apache License 2.0 发布