part_system_create_layer

此函数在给定层上创建新粒子系统 并返回其唯一索引号。

您可以提供函数 layer_create返回的唯一层ID或用作字符串的层名称(例如“instance_layer”),然后将系统标记为持久性或非持久性。

也可以提供使用粒子系统编辑器创建的粒子系统资源。执行此操作将创建在该资源中定义的系统及其所有发射器。

未标记为持久的系统将在创建它的房间结束时自动销毁(这与调用函数 part_system_destroy 相同, 并且还会销毁与系统关联的所有发射器)。
但是,当标记为持久性时,系统将在房间更改时转到下一个房间,并且如果下一个房间 具有与所分配的层具有相同名称或深度的层,则将为跨房间持久性的系统创建新层,并将其命名为与原始层相同的名称。
当更改房间时,如果在以下房间中存在另一个同名的层,则持久化实例将被分配给具有该名称的层 ,而不管层 的深度如何。
最后,如果一个持久化系统移动到一个房间,而该房间的层与创建该系统的层具有相同的深度,则它将 不会 指定给该层,而是在相同的深度创建一个新层(与原始层具有相同的名称)。

重要 如果您将粒子系统标记为持久,则需要在不使用时使用相应的销毁功能手动清理该粒子系统(以及指定给它的任何发射器),否则您将面临内存泄漏的风险,这将对最终游戏产生负面影响。

 

语法:

part_system_create_layer(layer_id, persistent, [partsys]);

参数类型描述
layerString or Layer要指定粒子系统的图层Id(或名称)(可以是任何图层类型)
persistentBoolean将粒子系统标记为持久(设置为true)或不(设置为false)
partsysParticle System Asset可选 要创建实例的粒子系统资源

 

返回:

Particle System Instance

 

例子:

global.p_sys = part_system_create_layer("effects_layer", true, ps_Explosion);

以上代码将在给定层上从 ps_Explosion 资源创建一个新粒子系统,并将其标记为在后续房间中保持。 粒子系统的 ID 存储在全局作用域变量 p_sys 中,以供将来参考。