Script Graph

使用指南

资产 / 预制体 / Prefab节点

资产 / 预制体 / Prefab 节点手册,包含 11 个节点的用途、引脚、使用场景和注意事项。

16

学习目标

读取和验证 Cocos 资产对象,把图片、音频、材质、Prefab 等资源接入工作流逻辑。

覆盖范围

  • 节点数量:11
  • 分类路径:资产 / 预制体 / Prefab

典型使用场景

  • 读取音频时长、图片尺寸、材质参数等资产信息
  • 校验加载结果是否可用
  • 创建或传递特定类型的资产实例

通用注意事项

  • 资产节点通常要求连接已加载的资产实例。
  • 父类 Asset 生命周期能力应优先使用通用资产管理节点。

节点索引

节点节点 ID输入/输出执行方式
获取持久化标记prefabGetPersistent1 / 1立即继续
获取模板根节点prefabGetData1 / 1立即继续
获取所有属性prefabGetProperties1 / 4立即继续
获取优化策略prefabGetOptimizationPolicy1 / 1立即继续
获取优化阈值prefabGetOptimizationThreshold0 / 1立即继续
设置持久化标记prefabSetPersistent3 / 2立即继续
设置模板根节点prefabSetData3 / 2立即继续
设置所有属性prefabSetProperties5 / 2立即继续
设置优化策略prefabSetOptimizationPolicy3 / 2立即继续
实例化预制体prefabInstantiate2 / 2立即继续
校验预制体prefabValidate1 / 1立即继续

获取持久化标记

读出 Prefab 资产上的持久化标记(persistent),输出 true 或 false。 这是 Prefab 资产上的一个标记字段,表示该 Prefab 是否倾向于作为跨场景常驻节点模板。注意:此标记不等价于 director.addPersistRootNode(node)——真正让节点跨场景常驻,仍需实例化后单独处理。

节点信息

字段
节点 IDprefabGetPersistent
分类资产
二级分类预制体
分组Prefab
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
prefab预制体数据cc.Asset / PrefabPrefab 预制体
这里需要连接一个已经加载好的 Prefab 实例。
该端口没有”选择预制体”按钮,请先使用以下方式获取预制体实例:
- 加载资产:把”类型”选为 PREFAB,从资产包按路径异步加载。
- 获取资产:取出资产包里已加载的 Prefab。
-必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
persistent持久化标记数据boolean持久化标记
Prefab 资产上的标记,不等价于跨场景常驻 API。
-可选

使用场景

  • 读取音频时长、图片尺寸、材质参数等资产信息
  • 校验加载结果是否可用
  • 创建或传递特定类型的资产实例

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 资产节点通常要求连接已加载的资产实例。
  • 父类 Asset 生命周期能力应优先使用通用资产管理节点。

获取模板根节点

读出 Prefab 的根节点模板(data),即该 Prefab 资产保存的原始节点结构。 注意:这里获取的是 Prefab 的模板节点,不是场景中已经实例化的节点。修改这个节点等同于修改 Prefab 模板本身,而不是修改某个具体的游戏运行时实例。

节点信息

字段
节点 IDprefabGetData
分类资产
二级分类预制体
分组Prefab
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
prefab预制体数据cc.Asset / PrefabPrefab 预制体
这里需要连接一个已经加载好的 Prefab 实例。
该端口没有”选择预制体”按钮,请先使用以下方式获取预制体实例:
- 加载资产:把”类型”选为 PREFAB,从资产包按路径异步加载。
- 获取资产:取出资产包里已加载的 Prefab。
-必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
node模板根节点数据cc.Node模板根节点
Prefab 资产保存的根节点模板。这不是实例化后的场景节点,修改它会影响 Prefab 模板本身。
-可选

使用场景

  • 读取音频时长、图片尺寸、材质参数等资产信息
  • 校验加载结果是否可用
  • 创建或传递特定类型的资产实例

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 资产节点通常要求连接已加载的资产实例。
  • 父类 Asset 生命周期能力应优先使用通用资产管理节点。

获取所有属性

一次性读出 Prefab 的全部常用属性:模板根节点、优化策略、持久化标记、是否有效。等同于连接多个 获取类节点,但只用一个节点即可。 适合调试、预览、批量检查 Prefab 配置等场景。 注意:node 输出的是 Prefab 的模板根节点,不是实例化后的场景节点。

节点信息

字段
节点 IDprefabGetProperties
分类资产
二级分类预制体
分组Prefab
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
prefab预制体数据cc.Asset / PrefabPrefab 预制体
这里需要连接一个已经加载好的 Prefab 实例。
该端口没有”选择预制体”按钮,请先使用以下方式获取预制体实例:
- 加载资产:把”类型”选为 PREFAB,从资产包按路径异步加载。
- 获取资产:取出资产包里已加载的 Prefab。
-必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
node模板根节点数据cc.Node模板根节点
Prefab 资产保存的根节点模板(非实例化节点)。
-可选
optimizationPolicy优化策略数据number优化策略
AUTO = 0,SINGLE_INSTANCE = 1,MULTI_INSTANCE = 2。
-可选
persistent持久化标记数据boolean持久化标记
Prefab 资产上的标记值。
-可选
isValid是否有效数据boolean是否有效
validate() 校验结果;true 表示结构正常。
-可选

使用场景

  • 读取音频时长、图片尺寸、材质参数等资产信息
  • 校验加载结果是否可用
  • 创建或传递特定类型的资产实例

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 资产节点通常要求连接已加载的资产实例。
  • 父类 Asset 生命周期能力应优先使用通用资产管理节点。

获取优化策略

读出 Prefab 的实例化优化策略(optimizationPolicy)。 该策略决定引擎对该 Prefab 进行实例化时采用哪种性能优化方式:

  • AUTO(0):根据实例化次数自动判断,首次使用单次优化,达到阈值后切换到多次优化。
  • SINGLE_INSTANCE(1):单次创建优化,适合只创建一次的 Prefab。
  • MULTI_INSTANCE(2):多次创建优化,适合频繁创建的 Prefab(如子弹、敌人)。

节点信息

字段
节点 IDprefabGetOptimizationPolicy
分类资产
二级分类预制体
分组Prefab
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
prefab预制体数据cc.Asset / PrefabPrefab 预制体
这里需要连接一个已经加载好的 Prefab 实例。
该端口没有”选择预制体”按钮,请先使用以下方式获取预制体实例:
- 加载资产:把”类型”选为 PREFAB,从资产包按路径异步加载。
- 获取资产:取出资产包里已加载的 Prefab。
-必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
optimizationPolicy优化策略数据number优化策略
AUTO = 0,SINGLE_INSTANCE = 1,MULTI_INSTANCE = 2。
-可选

使用场景

  • 读取音频时长、图片尺寸、材质参数等资产信息
  • 校验加载结果是否可用
  • 创建或传递特定类型的资产实例

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 资产节点通常要求连接已加载的资产实例。
  • 父类 Asset 生命周期能力应优先使用通用资产管理节点。

获取优化阈值

读取 Prefab 在 AUTO 策略下的优化切换阈值。 当实例化次数达到该值后,引擎会自动从”单次优化”切换到”多次优化”模式。默认值为 3,该值为只读常量,不可修改。

节点信息

字段
节点 IDprefabGetOptimizationThreshold
分类资产
二级分类预制体
分组Prefab
是否需要等待结果
是否需要先选择目标

输入引脚

无。

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
threshold优化阈值数据number优化阈值
AUTO 策略下,实例化次数达到 3(默认值)后切换为多次创建优化。
-可选

使用场景

  • 读取音频时长、图片尺寸、材质参数等资产信息
  • 校验加载结果是否可用
  • 创建或传递特定类型的资产实例

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 资产节点通常要求连接已加载的资产实例。
  • 父类 Asset 生命周期能力应优先使用通用资产管理节点。

设置持久化标记

设置 Prefab 资产上的持久化标记(persistent)。 注意:这是 Prefab 资产上的一个标记字段,不等价于直接把某个游戏运行时节点注册为持久根节点。如果你希望实例化后的节点跨场景常驻,需要在节点实例化后额外调用 director.addPersistRootNode(node)。

节点信息

字段
节点 IDprefabSetPersistent
分类资产
二级分类预制体
分组Prefab
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
exe-执行流执行流执行入口-可选
prefab预制体数据cc.Asset / PrefabPrefab 预制体
这里需要连接一个已经加载好的 Prefab 实例。
该端口没有”选择预制体”按钮,请先使用以下方式获取预制体实例:
- 加载资产:把”类型”选为 PREFAB,从资产包按路径异步加载。
- 获取资产:取出资产包里已加载的 Prefab。
-必填
persistent持久化标记数据boolean持久化标记
设置 Prefab 资产上的持久化标记。注意:不等价于跨场景常驻 API。
开关
默认值:false
必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
out-执行流执行流执行完成-可选
prefab预制体数据cc.Asset / PrefabPrefab 预制体(透传)
把当前操作的 Prefab 实例原样传出,便于将多个配置节点串联在一起。
-可选

使用场景

  • 读取音频时长、图片尺寸、材质参数等资产信息
  • 校验加载结果是否可用
  • 创建或传递特定类型的资产实例

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 资产节点通常要求连接已加载的资产实例。
  • 父类 Asset 生命周期能力应优先使用通用资产管理节点。

设置模板根节点

将一个 Node 设置为 Prefab 的根节点模板(data)。 重要:这个操作修改的是预制体模板本身(即 Prefab 资产中保存的原始节点内容),而不是修改已经实例化到场景中的节点。 执行后 Prefab 实例将透传到输出端口,便于链式调用其他配置节点。

节点信息

字段
节点 IDprefabSetData
分类资产
二级分类预制体
分组Prefab
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
exe-执行流执行流执行入口-可选
prefab预制体数据cc.Asset / PrefabPrefab 预制体
这里需要连接一个已经加载好的 Prefab 实例。
该端口没有”选择预制体”按钮,请先使用以下方式获取预制体实例:
- 加载资产:把”类型”选为 PREFAB,从资产包按路径异步加载。
- 获取资产:取出资产包里已加载的 Prefab。
-必填
node根节点数据cc.Node根节点
要设置为 Prefab 模板根节点的 Node。注意:这会修改 Prefab 模板内容,不是修改场景中已实例化的节点。
-必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
out-执行流执行流执行完成-可选
prefab预制体数据cc.Asset / PrefabPrefab 预制体(透传)
把当前操作的 Prefab 实例原样传出,便于将多个配置节点串联在一起。
-可选

使用场景

  • 读取音频时长、图片尺寸、材质参数等资产信息
  • 校验加载结果是否可用
  • 创建或传递特定类型的资产实例

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 资产节点通常要求连接已加载的资产实例。
  • 父类 Asset 生命周期能力应优先使用通用资产管理节点。

设置所有属性

一次性批量修改 Prefab 的多个常用属性:模板根节点、优化策略、持久化标记。 公开引脚语义(重要):除 exe 与 prefab 外,所有可写属性引脚默认不公开(isPublic: false),只有被显式公开的引脚才参与写入。若想保留目标属性原值不变,必须保持引脚不公开——仅断开连线不够,已公开的引脚会用内联控件默认值覆盖原值。

节点信息

字段
节点 IDprefabSetProperties
分类资产
二级分类预制体
分组Prefab
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
exe-执行流执行流执行入口-可选
prefab预制体数据cc.Asset / PrefabPrefab 预制体
这里需要连接一个已经加载好的 Prefab 实例。
该端口没有”选择预制体”按钮,请先使用以下方式获取预制体实例:
- 加载资产:把”类型”选为 PREFAB,从资产包按路径异步加载。
- 获取资产:取出资产包里已加载的 Prefab。
-必填
node模板根节点数据cc.Node模板根节点
要设置为 Prefab 模板根节点的 Node。默认不公开;公开后才参与写入。注意:这会修改 Prefab 模板本身。
-可选
默认隐藏
optimizationPolicy优化策略数据number优化策略
选择实例化优化方式。默认不公开;公开后才参与写入。
下拉选择
默认值:0
可选
默认隐藏
persistent持久化标记数据boolean持久化标记
Prefab 资产上的持久化标记。默认不公开;公开后才参与写入。注意:不等价于跨场景常驻 API。
开关
默认值:false
可选
默认隐藏

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
out-执行流执行流执行完成-可选
prefab预制体数据cc.Asset / PrefabPrefab 预制体(透传)
把当前操作的 Prefab 实例原样传出,便于将多个配置节点串联在一起。
-可选

使用场景

  • 读取音频时长、图片尺寸、材质参数等资产信息
  • 校验加载结果是否可用
  • 创建或传递特定类型的资产实例

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 资产节点通常要求连接已加载的资产实例。
  • 父类 Asset 生命周期能力应优先使用通用资产管理节点。

设置优化策略

设置 Prefab 的实例化优化策略(optimizationPolicy)。 根据使用场景选择合适的策略:

  • AUTO(0):自动判断,适合大多数情况。
  • SINGLE_INSTANCE(1):单次创建优化,适合只创建一次的 Prefab。
  • MULTI_INSTANCE(2):多次创建优化,适合频繁实例化的 Prefab(如子弹、敌人)。

节点信息

字段
节点 IDprefabSetOptimizationPolicy
分类资产
二级分类预制体
分组Prefab
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
exe-执行流执行流执行入口-可选
prefab预制体数据cc.Asset / PrefabPrefab 预制体
这里需要连接一个已经加载好的 Prefab 实例。
该端口没有”选择预制体”按钮,请先使用以下方式获取预制体实例:
- 加载资产:把”类型”选为 PREFAB,从资产包按路径异步加载。
- 获取资产:取出资产包里已加载的 Prefab。
-必填
optimizationPolicy优化策略数据number优化策略
AUTO = 0,SINGLE_INSTANCE = 1,MULTI_INSTANCE = 2。
下拉选择
默认值:0
必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
out-执行流执行流执行完成-可选
prefab预制体数据cc.Asset / PrefabPrefab 预制体(透传)
把当前操作的 Prefab 实例原样传出,便于将多个配置节点串联在一起。
-可选

使用场景

  • 读取音频时长、图片尺寸、材质参数等资产信息
  • 校验加载结果是否可用
  • 创建或传递特定类型的资产实例

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 资产节点通常要求连接已加载的资产实例。
  • 父类 Asset 生命周期能力应优先使用通用资产管理节点。

实例化预制体

将 Prefab 资产实例化为一个新的游戏运行时节点(Node)。 重要说明:

  • 生成一个全新的 Node 实例,对实例的任何修改都不会自动写回原 Prefab 资产。
  • 实例化后的 Node 需要手动添加到场景中(如通过 添加子节点 节点),否则不会显示。
  • 这是一个执行流节点:需要先走到这里完成实例化,再把结果节点继续传给后续操作。

节点信息

字段
节点 IDprefabInstantiate
分类资产
二级分类预制体
分组Prefab
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
exe-执行流执行流执行入口-可选
prefab预制体数据cc.Asset / PrefabPrefab 预制体
这里需要连接一个已经加载好的 Prefab 实例。
该端口没有”选择预制体”按钮,请先使用以下方式获取预制体实例:
- 加载资产:把”类型”选为 PREFAB,从资产包按路径异步加载。
- 获取资产:取出资产包里已加载的 Prefab。
-必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
out-执行流执行流执行完成-可选
node节点数据cc.NodeNode 实例
从 Prefab 实例化出的新游戏运行时节点。对该节点的修改不会影响原 Prefab 资产。
-可选

使用场景

  • 读取音频时长、图片尺寸、材质参数等资产信息
  • 校验加载结果是否可用
  • 创建或传递特定类型的资产实例

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 资产节点通常要求连接已加载的资产实例。
  • 父类 Asset 生命周期能力应优先使用通用资产管理节点。

校验预制体

对 Prefab 进行基础有效性校验,输出 true 或 false。 返回 false 表示 Prefab 存在结构问题(如根节点数据异常),此时不应继续对其进行实例化或属性操作。

节点信息

字段
节点 IDprefabValidate
分类资产
二级分类预制体
分组Prefab
是否需要等待结果
是否需要先选择目标

输入引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
prefab预制体数据cc.Asset / PrefabPrefab 预制体
这里需要连接一个已经加载好的 Prefab 实例。
该端口没有”选择预制体”按钮,请先使用以下方式获取预制体实例:
- 加载资产:把”类型”选为 PREFAB,从资产包按路径异步加载。
- 获取资产:取出资产包里已加载的 Prefab。
-必填

输出引脚

引脚 ID名称连接方式值类型用途默认或选择连接要求
isValid是否有效数据boolean是否有效
true:Prefab 结构正常;false:存在结构问题。
-可选

使用场景

  • 读取音频时长、图片尺寸、材质参数等资产信息
  • 校验加载结果是否可用
  • 创建或传递特定类型的资产实例

注意事项

  • 适合的工作流类型:component、library、method、function、class。
  • 资产节点通常要求连接已加载的资产实例。
  • 父类 Asset 生命周期能力应优先使用通用资产管理节点。