Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Prefab

预制资源类。

Hierarchy

Index

Constructors

constructor

Properties

Private _createFunction

_createFunction: Function | null

Private _instantiatedTimes

_instantiatedTimes: number

Protected _name

_name: string

_native

_native: string = ""

用于本机资产的可序列化URL。供内部使用。

default

""

_objFlags

_objFlags: number

_uuid

_uuid: string

内部使用。

asyncLoadAssets

asyncLoadAssets: Boolean = false

指示该 Prefab 依赖的资源可否在 Prefab 加载后再延迟加载。

default

false

data

data: any = null

Prefab 中的根节点,Node 类型

loaded

loaded: boolean = true

该资源是否已经成功加载。

optimizationPolicy

optimizationPolicy: number = OptimizationPolicy.AUTO

设置实例化这个 prefab 时所用的优化策略。根据使用情况设置为合适的值,能优化该 prefab 实例化所用的时间。推荐在编辑器的资源中设置。

default

Prefab.OptimizationPolicy.AUTO

example
import { Prefab } from 'cc';
prefab.optimizationPolicy = Prefab.OptimizationPolicy.MULTI_INSTANCE;

Static OptimizationPolicy

OptimizationPolicy: { AUTO: number; MULTI_INSTANCE: number; SINGLE_INSTANCE: number } = OptimizationPolicy

Prefab 创建实例所用的优化策略枚举类型

Type declaration

  • AUTO: number
    en

    The optimization policy is automatically chosen based on the number of instantiations. When you first create an instance, the behavior is the same as SINGLE_INSTANCE. MULTI_INSTANCE will be automatically used after multiple creation.

    zh

    根据创建次数自动调整优化策略。初次创建实例时,行为等同 SINGLE_INSTANCE,多次创建后将自动采用 MULTI_INSTANCE。

  • MULTI_INSTANCE: number
    en

    Optimize for creating instances multiple times.
    This option enables code generation for this prefab. When this prefab will usually create multiple instances, please select this option. It is also recommended to select this option if the prefab instance in the scene has Auto Sync enabled and there are multiple instances in the scene.

    zh

    优化多次创建性能。
    该选项会启用针对这个 prefab 的代码生成优化操作。当该 prefab 加载后,一般会创建多个实例时,请选择此项。如果该 prefab 在场景中的节点启用了自动关联,并且在场景中有多份实例,也建议选择此项。

  • SINGLE_INSTANCE: number
    en

    Optimize for single instance creation.
    This option skips code generation for this prefab. When this prefab will usually create only one instances, please select this option.

    zh

    优化单次创建性能。
    该选项会跳过针对这个 prefab 的代码生成优化操作。当该 prefab 加载后,一般只会创建一个实例时,请选择此项。

Static OptimizationPolicyThreshold

OptimizationPolicyThreshold: number = 3

Static preventDeferredLoadDependents

preventDeferredLoadDependents: boolean = false

当场景或 Prefab 被标记为 asyncLoadAssets,禁止延迟加载该资源所依赖的其它 RawAsset。

default

false

Static preventPreloadNativeObject

preventPreloadNativeObject: boolean = false

禁止预加载原生对象。

default

false

Accessors

Private nativeAsset

  • get nativeAsset(): any
  • set nativeAsset(obj: any): void
  • 此资源的基础资源(如果有)。 此属性可用于访问与资源相关的其他详细信息或功能。
    如果_native可用,则此属性将由加载器初始化。

    default

    null

    Returns any

  • 此资源的基础资源(如果有)。 此属性可用于访问与资源相关的其他详细信息或功能。
    如果_native可用,则此属性将由加载器初始化。

    default

    null

    Parameters

    • obj: any

    Returns void

isValid

  • get isValid(): boolean
  • 表示该对象是否可用(被 destroy 后将不可用)。
    当一个对象的 destroy 调用以后,会在这一帧结束后才真正销毁。
    因此从下一帧开始 isValid 就会返回 false,而当前帧内 isValid 仍然会是 true。
    如果希望判断当前帧是否调用过 destroy,请使用 isValid(obj, true),不过这往往是特殊的业务需求引起的,通常情况下不需要这样。

    default

    true

    readonly
    example
    import { Node, log } from 'cc';
    const node = new Node();
    log(node.isValid);    // true
    node.destroy();
    log(node.isValid);    // true, still valid in this frame
    // after a frame...
    log(node.isValid);    // false, destroyed in the end of last frame

    Returns boolean

name

  • get name(): string
  • set name(value: string): void

nativeUrl

  • get nativeUrl(): string

Methods

destroyImmediate

  • _destroyImmediate(): void

destruct

  • _destruct(): void
  • Clear all references in the instance.

    NOTE: this method will not clear the getter or setter functions which defined in the instance of CCObject. You can override the _destruct method if you need, for example: _destruct: function () { for (var key in this) { if (this.hasOwnProperty(key)) { switch (typeof this[key]) { case 'string': this[key] = ''; break; case 'object': case 'function': this[key] = null; break; } } }

    Returns void

Private doInstantiate

  • doInstantiate(rootToRedirect?: any): any

Private instantiate

  • _instantiate(): any

Private setRawAsset

  • setRawAsset(filename: string, inLibrary?: boolean): void

compileCreateFunction

  • compileCreateFunction(): void
  • 将预制数据动态转换为最小化代码。
    此方法将在第一次实例化预制件之前自动调用,
    但是您可以在脚本中修改原始预制数据后重新调用以刷新创建功能。

    Returns void

createNode

  • createNode(cb: Function): void

destroy

  • destroy(): boolean
  • 销毁该对象,并释放所有它对其它对象的引用。
    实际销毁操作会延迟到当前帧渲染前执行。从下一帧开始,该对象将不再可用。 您可以在访问对象之前使用 isValid(obj) 来检查对象是否已被销毁。

    example
    obj.destroy();

    Returns boolean

    whether it is the first time the destroy being called

emit

  • emit(type: EventType, arg0?: any, arg1?: any, arg2?: any, arg3?: any, arg4?: any): void

hasEventListener

  • hasEventListener(type: string, callback?: Function, target?: undefined | object): boolean
  • 检查指定事件是否已注册回调。

    Parameters

    • type: string

      Event type.

    • Optional callback: Function

      Callback function when event triggered.

    • Optional target: undefined | object

      Callback callee.

    Returns boolean

off

  • 删除之前用同类型,回调,目标或 useCapture 注册的事件监听器,如果只传递 type,将会删除 type 类型的所有事件监听器。

    example

    import { log } from 'cc'; // register fire eventListener var callback = eventTarget.on('fire', function () { log("fire in the hole"); }, target); // remove fire event listener eventTarget.off('fire', callback, target); // remove all fire event listeners eventTarget.off('fire');

    Type parameters

    • TFunction: Function

    Parameters

    • type: EventType

      A string representing the event type being removed.

    • Optional callback: TFunction

      The callback to remove.

    • Optional thisArg: any

    Returns void

on

  • on<TFunction>(type: EventType, callback: TFunction, thisArg?: any, once?: undefined | false | true): typeof callback
  • 注册事件目标的特定事件类型回调。这种类型的事件应该被 emit 触发。

    example

    import { log } from 'cc'; eventTarget.on('fire', function () { log("fire in the hole"); }, node);

    Type parameters

    • TFunction: Function

    Parameters

    • type: EventType

      A string representing the event type to listen for.

    • callback: TFunction

      The callback that will be invoked when the event is dispatched. The callback is ignored if it is a duplicate (the callbacks are unique).

    • Optional thisArg: any

      The target (this object) to invoke the callback, can be null

    • Optional once: undefined | false | true

    Returns typeof callback

    • Just returns the incoming callback so you can save the anonymous function easier.

once

  • once<TFunction>(type: EventType, callback: TFunction, thisArg?: any): typeof callback
  • 注册事件目标的特定事件类型回调,回调会在第一时间被触发后删除自身。

    example

    import { log } from 'cc'; eventTarget.once('fire', function () { log("this is the callback and will be invoked only once"); }, node);

    Type parameters

    • TFunction: Function

    Parameters

    • type: EventType

      A string representing the event type to listen for.

    • callback: TFunction

      The callback that will be invoked when the event is dispatched. The callback is ignored if it is a duplicate (the callbacks are unique).

    • Optional thisArg: any

    Returns typeof callback

removeAll

  • removeAll(typeOrTarget: string | object): void
  • 移除在特定事件类型中注册的所有回调或在某个目标中注册的所有回调。

    Parameters

    • typeOrTarget: string | object

      The event type or target with which the listeners will be removed

    Returns void

Private serialize

  • serialize(): void

targetOff

  • targetOff(typeOrTarget: string | object): void
  • 在当前 EventTarget 上删除指定目标(target 参数)注册的所有事件监听器。 这个函数无法删除当前 EventTarget 的所有事件监听器,也无法删除 target 参数所注册的所有事件监听器。 这个函数只能删除 target 参数在当前 EventTarget 上注册的所有事件监听器。

    Parameters

    • typeOrTarget: string | object

      The target to be searched for all related listeners

    Returns void

toString

  • toString(): string
  • 返回对象的字符串表示形式。
    Asset 对象将会重写 Object 对象的 toString() 方法。
    当资源要表示为文本值时或在字符串连接时引用时,
    JavaScript 会自动调用 toString() 方法。

    对于原始类型的资源,它将返回this.nativeUrl
    否则,返回空字符串。
    子类可能会覆盖此方法。

    method

    toString

    Returns string

Static deferredDestroy

  • _deferredDestroy(): void

Static deserialize

  • deserialize(data: any): any

Static isRawAssetType

  • isRawAssetType(ctor: Function): boolean

Generated using TypeDoc