Script Graph

使用指南

对象池节点

对象池 节点手册,包含 5 个节点的用途、引脚、使用场景和注意事项。

16

学习目标

复用频繁创建销毁的节点或对象,降低游戏运行时的创建成本。

覆盖范围

  • 节点数量:5
  • 分类路径:对象池

典型使用场景

  • 子弹、特效、伤害数字、掉落物复用
  • 关卡中批量生成和回收对象
  • 减少移动平台上的卡顿

通用注意事项

  • 回收对象前要重置位置、状态和事件绑定。
  • 取出对象后要确认它已经从池中正确激活。

节点索引

节点节点 ID输入/输出执行方式
创建对象池nodePoolCreate2 / 2立即继续
对象池数量nodePoolSize1 / 1立即继续
放回节点nodePoolPut3 / 2立即继续
清空对象池nodePoolClear2 / 2立即继续
取出节点nodePoolGet2 / 4立即继续

创建对象池

创建对象池:新建一个专门缓存节点的对象池,适合子弹、爆炸特效、掉落物、飘字等会被反复生成和回收的内容。 通常做法是先在加载事件或启动事件里创建一次,再把对象池保存到变量,后续配合“取出节点”和“放回节点”反复使用。 如果这类节点在回收前后还需要额外处理,可以选择一个处理器组件类型;留空时使用默认回收方式。

节点信息

字段
节点 IDnodePoolCreate
分类对象池
二级分类-
分组-
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
exe-执行流执行流执行入口
触发当前对象池操作。
-可选
poolHandlerComp处理器组件数据cc.Component / Component可选处理器组件
选择负责“放回后收尾”和“再次取出前准备”的组件类型。留空时保持默认回收方式。
可编辑控件
默认值:""
可从项目内容中选择
可选

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
out继续执行流执行流执行出口
当前对象池操作完成后继续执行后续节点。
-可选
pool对象池数据reference / NodePool对象池
把当前对象池继续传给后续节点,方便连续执行取出、放回或清空等操作。
-可选

使用场景

  • 子弹、特效、伤害数字、掉落物复用
  • 关卡中批量生成和回收对象
  • 减少移动平台上的卡顿

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 回收对象前要重置位置、状态和事件绑定。
  • 取出对象后要确认它已经从池中正确激活。

对象池数量

对象池数量:读取当前池里还剩多少个可直接复用的节点。 适合在生成前判断库存是否充足,或在调试时观察对象池是否按预期回收。

节点信息

字段
节点 IDnodePoolSize
分类对象池
二级分类-
分组-
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
pool对象池数据reference / NodePool对象池
连接已经创建好的对象池。通常会先在初始化阶段创建,再保存到变量里重复使用。
-必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
size可用数量数据number当前可复用节点数量
返回对象池里现在还剩多少个可直接取出的节点。
-可选

使用场景

  • 子弹、特效、伤害数字、掉落物复用
  • 关卡中批量生成和回收对象
  • 减少移动平台上的卡顿

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 回收对象前要重置位置、状态和事件绑定。
  • 取出对象后要确认它已经从池中正确激活。

放回节点

放回节点:把暂时不用的节点回收到对象池,方便后续再次取出复用。 适合子弹命中后回收、一次性特效播放完后回收、伤害数字消失后回收等场景。 执行时会自动把节点从父节点移除,所以放回前不需要再手动把它从场景树上摘下来。

节点信息

字段
节点 IDnodePoolPut
分类对象池
二级分类-
分组-
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
exe-执行流执行流执行入口
触发当前对象池操作。
-可选
pool对象池数据reference / NodePool对象池
连接已经创建好的对象池。通常会先在初始化阶段创建,再保存到变量里重复使用。
-必填
node节点数据cc.Node待回收节点
要放回对象池的节点。执行时会自动把它从父节点移除。
-必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
out继续执行流执行流执行出口
当前对象池操作完成后继续执行后续节点。
-可选
pool对象池数据reference / NodePool对象池
把当前对象池继续传给后续节点,方便连续执行取出、放回或清空等操作。
-可选

使用场景

  • 子弹、特效、伤害数字、掉落物复用
  • 关卡中批量生成和回收对象
  • 减少移动平台上的卡顿

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 回收对象前要重置位置、状态和事件绑定。
  • 取出对象后要确认它已经从池中正确激活。

清空对象池

清空对象池:销毁当前池里已经缓存、但暂时没有在场景中使用的全部节点。 适合在切换场景、重开关卡或彻底关闭某套玩法时释放缓存。 它只会清理池中尚未取出的缓存节点,不会影响已经在场景里正常使用的节点。

节点信息

字段
节点 IDnodePoolClear
分类对象池
二级分类-
分组-
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
exe-执行流执行流执行入口
触发当前对象池操作。
-可选
pool对象池数据reference / NodePool对象池
连接已经创建好的对象池。通常会先在初始化阶段创建,再保存到变量里重复使用。
-必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
out继续执行流执行流执行出口
当前对象池操作完成后继续执行后续节点。
-可选
pool对象池数据reference / NodePool对象池
把当前对象池继续传给后续节点,方便连续执行取出、放回或清空等操作。
-可选

使用场景

  • 子弹、特效、伤害数字、掉落物复用
  • 关卡中批量生成和回收对象
  • 减少移动平台上的卡顿

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 回收对象前要重置位置、状态和事件绑定。
  • 取出对象后要确认它已经从池中正确激活。

取出节点

取出节点:尝试从对象池拿出一个已经缓存好的节点,常用于发射子弹、生成特效、刷出敌人等需要快速复用对象的场景。 如果对象池里还有可用节点,节点输出会返回该节点,取出成功输出为 true。 如果池为空,节点输出为 null,取出成功输出为 false。这时可以改走“新建节点”或“稍后再试”的逻辑。

节点信息

字段
节点 IDnodePoolGet
分类对象池
二级分类-
分组-
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
exe-执行流执行流执行入口
触发当前对象池操作。
-可选
pool对象池数据reference / NodePool对象池
连接已经创建好的对象池。通常会先在初始化阶段创建,再保存到变量里重复使用。
-必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
out继续执行流执行流执行出口
当前对象池操作完成后继续执行后续节点。
-可选
pool对象池数据reference / NodePool对象池
把当前对象池继续传给后续节点,方便连续执行取出、放回或清空等操作。
-可选
node节点数据cc.Node取出的节点
对象池里有可复用节点时返回该节点;池为空时返回 null。
-可选
hasNode取出成功数据boolean对象池是否取到节点
true 表示这次成功取出一个节点;false 表示池为空。
-可选

使用场景

  • 子弹、特效、伤害数字、掉落物复用
  • 关卡中批量生成和回收对象
  • 减少移动平台上的卡顿

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 回收对象前要重置位置、状态和事件绑定。
  • 取出对象后要确认它已经从池中正确激活。