类: UIRenderer

extend: Renderer

导入示例:

import { UIRenderer } from "cc";

所有支持渲染的 UI 组件的基类。 这个组件会设置 Node 上的 NodeUIProperties.uiComp。

索引

构造函数

静态属性
后置渲染数据组装器
混合模式枚举类型
渲染数据组装器

静态方法

属性
组件模板缓冲状态 (注意:请不要直接修改它的值)
用户自定材质
渲染颜色,一般情况下会和贴图颜色相乘。
标记组件是否逐顶点计算透明度

方法
请求新的渲染数据对象。
后置渲染数据组装程序,它会在所有子节点的渲染数据组装完成后被调用。它可能会组装额外的渲染数据到顶点数据缓冲区,也可能只是重置一些渲染状态。注意:不要手动调用该函数,除非你理解整个流程。
标记当前组件的渲染数据为已修改状态,这样渲染数据才会重新计算。
销毁当前渲染数据。

继承属性
组件的 uuid,用于编辑器。
获取默认的共享材质
所有模型材质。
获取默认的材质实例,如果还没有创建,将会根据默认共享材质创建一个新的材质实例
表示该对象是否可用(被 destroy 后将不可用)。
当一个对象的 destroy 调用以后,会在这一帧结束后才真正销毁。
因此从下一帧开始 isValid 就会返回 false,而当前帧内 isValid 仍然会是 true。
如果希望判断当前帧是否调用过 destroy,请使用 isValid(obj, true),不过这往往是特殊的业务需求引起的,通常情况下不需要这样。
在继承 CCObject 对象后,控制是否需要隐藏,锁定,序列化等功能。
表示该组件是否被启用并且所在的节点也处于激活状态。
表示该组件自身是否启用。
该组件被附加到的节点。组件总会附加到一个节点。
  • _id protected
返回一个值用来判断 onLoad 是否被调用过,不等于 0 时调用过,等于 0 时未调用。

继承方法
取消调度所有已调度的回调函数。
取消调度一个自定义的回调任务。
设置指定子模型的 sharedMaterial,如果对应位置有材质实例则会创建一个对应的材质实例。
获取指定子模型的材质实例。
使用定时器系统调度一个只运行一次的回调任务,可以指定 0 让回调函数在下一帧立即执行或者在一定的延时之后执行。
使用定时器系统调度一个自定义的回调任务。
如果回调任务已调度,那么将不会重复调度它,只会更新时间间隔参数。
用来初始化组件或节点的一些属性,当该组件被第一次添加到节点上或用户点击了它的 Reset 菜单时调用。这个回调只会在编辑器下调用。
获取指定子模型的共享材质资源。
获取指定位置可供渲染的材质,如果有材质实例则使用材质实例,如果没有则使用材质资源
获取指定子模型的材质实例。如果还没有创建,将会根据对应的共享材质创建一个新的材质实例
递归查找自身或所有子节点中指定类型的组件。
返回节点上指定类型的所有组件。
递归查找所有子节点中第一个匹配指定类型的组件。
获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。
传入参数也可以是脚本的名称。
向节点添加一个指定类型的组件类,你还可以通过传入脚本的名称来添加组件。
清理实例的所有引用注意:此方法不会清理实例上的 getter 与 setter 方法。
如果组件的包围盒与节点不同,您可以实现该方法以提供自定义的轴向对齐的包围盒(AABB),以便编辑器的场景视图可以正确地执行点选测试。
如果该组件启用,则每帧调用 LateUpdate。
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
如果该组件第一次启用,则在所有组件的 update 之前调用。通常用于需要在所有组件的 onLoad 初始化完毕后执行的逻辑。
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
如果该组件启用,则每帧调用 update。
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。

详情

构造函数

public UIRenderer () :
UIRenderer
返回值: UIRenderer

静态属性

public PostAssembler : null | IAssemblerManager
default: null
static
后置渲染数据组装器
public BlendState : typeof BlendFactor
default: BlendFactor
static
混合模式枚举类型
public Assembler : IAssemblerManager
static
渲染数据组装器

静态方法

public setEntityColorDirtyRecursively (node : Node, dirty : boolean) :
void
static
输入参数
名称类型描述
nodeNode-
dirtyboolean-
返回值: void

属性

public useVertexOpacity : boolean
deprecated
Deprecated: Since v3.7.0, this is an engine private interface that will be removed in the future.
public stencilStage : Stage
deprecated
Deprecated: Since v3.7.0, this is an engine private interface that will be removed in the future.
组件模板缓冲状态 (注意:请不要直接修改它的值)
public renderEntity : RenderEntity
deprecated
Deprecated: Since v3.7.0, this is an engine private interface that will be removed in the future.
public renderData : null | RenderData
deprecated
Deprecated: Since v3.7.0, this is an engine private interface that will be removed in the future.
public customMaterial : null | Material
用户自定材质
public color : Readonly < Color >
渲染颜色,一般情况下会和贴图颜色相乘。
public batcher : UI
deprecated
Deprecated: Since v3.7.0, this is an engine private interface that will be removed in the future.
protected _assembler : null | IAssembler
default: null
protected _color : Color
protected _customMaterial : null | Material
default: null
protected _dirtyVersion : number
default: -1
deprecated
Deprecated: Since v3.7.0, this is an engine private interface that will be removed in the future.
protected _dstBlendFactor : BlendFactor
default: BlendFactor.ONE_MINUS_SRC_ALPHA
protected _dstBlendFactorCache : BlendFactor
default: BlendFactor.ONE_MINUS_SRC_ALPHA
protected _instanceMaterialType : number
default: -1
protected _internalId : number
default: -1
deprecated
Deprecated: Since v3.7.0, this is an engine private interface that will be removed in the future.
protected _lastParent : null | Node
default: null
protected _postAssembler : null | IAssembler
default: null
protected _renderData : null | RenderData
default: null
protected _renderDataFlag : boolean
default: true
protected _renderEntity : RenderEntity
protected _renderFlag : boolean
default: true
protected _srcBlendFactor : BlendFactor
default: BlendFactor.SRC_ALPHA
protected _srcBlendFactorCache : BlendFactor
default: BlendFactor.SRC_ALPHA
protected _stencilStage : Stage
default: Stage.DISABLED
protected _useVertexOpacity : boolean
default: false
标记组件是否逐顶点计算透明度

方法

public updateRenderer () :
void
deprecated
返回值: void
public setTextureDirty () :
void
deprecated
返回值: void
public setNodeDirty () :
void
deprecated
返回值: void
public setEntityOpacity (opacity : number) :
void
deprecated
输入参数
名称类型描述
opacitynumber-
返回值: void
public setEntityEnabled (enabled : boolean) :
void
deprecated
输入参数
名称类型描述
enabledboolean-
返回值: void
public setEntityColor (color : Color) :
void
deprecated
输入参数
名称类型描述
colorColor-
返回值: void
public requestRenderData (drawInfoType ?: RenderDrawInfoType) :
RenderData
请求新的渲染数据对象。
输入参数
名称类型描述
drawInfoTypeRenderDrawInfoType-
返回值: RenderData
public postUpdateAssembler (render : IBatcher) :
void
后置渲染数据组装程序,它会在所有子节点的渲染数据组装完成后被调用。 它可能会组装额外的渲染数据到顶点数据缓冲区,也可能只是重置一些渲染状态。 注意:不要手动调用该函数,除非你理解整个流程。
输入参数
名称类型描述
renderIBatcher-
返回值: void
public markForUpdateRenderData (enable ?: boolean) :
void
标记当前组件的渲染数据为已修改状态,这样渲染数据才会重新计算。
输入参数
名称类型描述
enablebooleanMarked necessary to update or not
返回值: void
public fillBuffers (render : IBatcher) :
void
deprecated
输入参数
名称类型描述
renderIBatcher-
返回值: void
public destroyRenderData () :
void
销毁当前渲染数据。
返回值: void
protected _canRender () :
boolean
返回值: boolean
protected _colorDirty () :
void
返回值: void
protected _flushAssembler () :
void
返回值: void
protected _nodeStateChange (transformType : TransformBit) :
void
输入参数
名称类型描述
transformTypeTransformBit-
返回值: void
protected _postCanRender () :
void
返回值: void
protected _postRender (render : IBatcher) :
void
输入参数
名称类型描述
renderIBatcher-
返回值: void
protected _render (render : IBatcher) :
void
输入参数
名称类型描述
renderIBatcher-
返回值: void
protected _updateBlendFunc () :
void
deprecated
返回值: void
protected _updateBuiltinMaterial () :
Material
返回值: Material
protected _updateColor () :
void
返回值: void
protected createRenderEntity () :
RenderEntity
返回值: RenderEntity
public setEntityColorDirty (dirty : boolean) :
void
输入参数
名称类型描述
dirtyboolean-
返回值: void

继承属性

public uuid : string
继承自:Renderer.uuid
组件的 uuid,用于编辑器。

示例

import { log } from 'cc';
log(comp.uuid); 
public sharedMaterials : ( null | Material ) []
public sharedMaterial : null | Material
继承自:Renderer.sharedMaterial
获取默认的共享材质
public name : string
继承自:Renderer.name
public materials : ( null | Material | MaterialInstance ) []
继承自:Renderer.materials
所有模型材质。
public material : null | Material | MaterialInstance
继承自:Renderer.material
获取默认的材质实例,如果还没有创建,将会根据默认共享材质创建一个新的材质实例
public isValid : boolean
继承自:Renderer.isValid
表示该对象是否可用(被 destroy 后将不可用)。
当一个对象的 `destroy` 调用以后,会在这一帧结束后才真正销毁。
因此从下一帧开始 `isValid` 就会返回 false,而当前帧内 `isValid` 仍然会是 true。
如果希望判断当前帧是否调用过 `destroy`,请使用 `isValid(obj, true)`,不过这往往是特殊的业务需求引起的,通常情况下不需要这样。

示例

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 
public hideFlags : Flags
继承自:Renderer.hideFlags
在继承 CCObject 对象后,控制是否需要隐藏,锁定,序列化等功能。
public enabledInHierarchy : boolean
继承自:Renderer.enabledInHierarchy
表示该组件是否被启用并且所在的节点也处于激活状态。

示例

import { log } from 'cc';
log(comp.enabledInHierarchy); 
public enabled : boolean
继承自:Renderer.enabled
表示该组件自身是否启用。

示例

import { log } from 'cc';
comp.enabled = true;
log(comp.enabled); 
public system : null
default: null
static
继承自:system
public EventHandler : typeof EventHandler
default: EventHandler
static
继承自:EventHandler
public node : Node
default: NullNode
继承自:node
该组件被附加到的节点。组件总会附加到一个节点。

示例

import { log } from 'cc';
log(comp.node); 
protected __editorExtras__ : unknown
继承自:__editorExtras__
protected __prefab : null | CompPrefabInfo
default: null
继承自:__prefab
protected _enabled : boolean
default: true
deprecated
继承自:_enabled
Deprecated: since v3.5.0, this is an engine private interface that will be removed in the future.
protected _id : string
deprecated
继承自:_id
Deprecated: since v3.5.0, this is an engine private interface that will be removed in the future.
protected _materialInstances : ( null | MaterialInstance ) []
default: []
继承自:_materialInstances
protected _materials : ( null | Material ) []
default: []
protected _name : string
继承自:_name
protected _objFlags : number
default: 0
继承自:_objFlags
protected _sceneGetter : null | ( )
default: null
继承自:_sceneGetter
protected __scriptAsset : null
deprecated
继承自:Renderer.__scriptAsset
Deprecated: since v3.5.0, this is an engine private interface that will be removed in the future.
protected _isOnLoadCalled : number
deprecated
继承自:Renderer._isOnLoadCalled
Deprecated: since v3.5.0, this is an engine private interface that will be removed in the future.
返回一个值用来判断 onLoad 是否被调用过,不等于 0 时调用过,等于 0 时未调用。

示例

import { log } from 'cc';
log(this._isOnLoadCalled > 0); 

继承方法

public unscheduleAllCallbacks () :
void
继承自:Renderer.unscheduleAllCallbacks
取消调度所有已调度的回调函数。
返回值: void

示例

this.unscheduleAllCallbacks(); 
public unschedule (callback_fn : any) :
void
继承自:Renderer.unschedule
取消调度一个自定义的回调任务。
输入参数
名称类型描述
callback_fnanyThe callback function of the task
返回值: void

示例

this.unschedule(_callback); 
public setSharedMaterial (material : null | Material, index : number) :
void
继承自:Renderer.setSharedMaterial
设置指定子模型的 sharedMaterial,如果对应位置有材质实例则会创建一个对应的材质实例。
输入参数
名称类型描述
materialnull | Material-
indexnumber-
返回值: void
public setMaterialInstance (matInst : null | Material | MaterialInstance, index : number) :
void
继承自:Renderer.setMaterialInstance
获取指定子模型的材质实例。
输入参数
名称类型描述
matInstnull | Material | MaterialInstance-
indexnumber-
返回值: void
public setMaterial (material : null | Material, index : number) :
void
deprecated
继承自:Renderer.setMaterial
输入参数
名称类型描述
materialnull | Material-
indexnumber-
返回值: void
public scheduleOnce (callback : any, delay ?: number) :
void
继承自:Renderer.scheduleOnce
使用定时器系统调度一个只运行一次的回调任务,可以指定 0 让回调函数在下一帧立即执行或者在一定的延时之后执行。
输入参数
名称类型描述
callbackanyThe callback function of the task
delaynumberThe delay time for the first invocation, Unit: s
返回值: void

示例

import { log } from 'cc';
this.scheduleOnce((dt) => void log(`time: ${dt}`), 2); 
public schedule (callback : any, interval ?: number, repeat ?: number, delay ?: number) :
void
继承自:Renderer.schedule
使用定时器系统调度一个自定义的回调任务。
如果回调任务已调度,那么将不会重复调度它,只会更新时间间隔参数。
输入参数
名称类型描述
callbackanyThe callback function of the task
intervalnumberThe time interval between each invocation
repeatnumberThe repeat count of this task, the task will be invoked (repeat + 1) times, use [[24197]] to repeat a task forever
delaynumberThe delay time for the first invocation, Unit: s
返回值: void

示例

import { log } from 'cc';
this.schedule((dt) => void log(`time: ${dt}`), 1); 
public resetInEditor (didResetToDefault ?: boolean) :
void
继承自:Renderer.resetInEditor
用来初始化组件或节点的一些属性,当该组件被第一次添加到节点上或用户点击了它的 Reset 菜单时调用。这个回调只会在编辑器下调用。
输入参数
名称类型描述
didResetToDefaultboolean-
返回值: void
public onRestore () :
void
返回值: void
public onLostFocusInEditor () :
void
继承自:Renderer.onLostFocusInEditor
返回值: void
public onLoad () :
void
返回值: void
public onFocusInEditor () :
void
继承自:Renderer.onFocusInEditor
返回值: void
public onEnable () :
void
返回值: void
public onDisable () :
void
返回值: void
public onDestroy () :
void
返回值: void
public getSharedMaterial (idx : number) :
null | Material
继承自:Renderer.getSharedMaterial
获取指定子模型的共享材质资源。
输入参数
名称类型描述
idxnumber-
返回值: null | Material
public getRenderMaterial (index : number) :
null | Material
继承自:Renderer.getRenderMaterial
获取指定位置可供渲染的材质,如果有材质实例则使用材质实例,如果没有则使用材质资源
输入参数
名称类型描述
indexnumber-
返回值: null | Material
public getMaterialInstance (idx : number) :
null | MaterialInstance
继承自:Renderer.getMaterialInstance
获取指定子模型的材质实例。如果还没有创建,将会根据对应的共享材质创建一个新的材质实例
输入参数
名称类型描述
idxnumber-
返回值: null | MaterialInstance
public getMaterial (idx : number) :
null | Material
deprecated
继承自:Renderer.getMaterial
输入参数
名称类型描述
idxnumber-
返回值: null | Material
public getComponentsInChildren <T extends Component> (classConstructor : Constructor < Component > | AbstractedConstructor < Component >) :
Component []
继承自:Renderer.getComponentsInChildren
递归查找自身或所有子节点中指定类型的组件。
输入参数
名称类型描述
classConstructorConstructor < Component > | AbstractedConstructor < Component >The class of components to be retrieved
返回值: Component []

示例

import { Sprite } from 'cc';
const sprites = node.getComponentsInChildren(Sprite); 
public getComponentsInChildren (className : string) :
Component []
继承自:Renderer.getComponentsInChildren
递归查找自身或所有子节点中指定类型的组件。
输入参数
名称类型描述
classNamestringA string for the class name of the components
返回值: Component []

示例

const tests = node.getComponentsInChildren("Test"); 
public getComponents <T extends Component> (classConstructor : Constructor < Component > | AbstractedConstructor < Component >) :
Component []
继承自:Renderer.getComponents
返回节点上指定类型的所有组件。
输入参数
名称类型描述
classConstructorConstructor < Component > | AbstractedConstructor < Component >The class of components to be retrieved
返回值: Component []

示例

import { Sprite } from 'cc';
const sprites = node.getComponents(Sprite); 
public getComponents (className : string) :
Component []
继承自:Renderer.getComponents
返回节点上指定类型的所有组件。
输入参数
名称类型描述
classNamestringA string for the class name of the components
返回值: Component []

示例

const tests = node.getComponents("Test"); 
public getComponentInChildren <T extends Component> (classConstructor : Constructor < Component > | AbstractedConstructor < Component >) :
null | Component
继承自:Renderer.getComponentInChildren
递归查找所有子节点中第一个匹配指定类型的组件。
输入参数
名称类型描述
classConstructorConstructor < Component > | AbstractedConstructor < Component >The class of component to be retrieved
返回值: null | Component

示例

import { Sprite } from 'cc';
const sprite = node.getComponentInChildren(Sprite); 
public getComponentInChildren (className : string) :
null | Component
继承自:Renderer.getComponentInChildren
递归查找所有子节点中第一个匹配指定类型的组件。
输入参数
名称类型描述
classNamestringA string for the class name of the component
返回值: null | Component

示例

var Test = node.getComponentInChildren("Test"); 
public getComponent <T extends Component> (classConstructor : Constructor < Component > | AbstractedConstructor < Component >) :
null | Component
继承自:Renderer.getComponent
获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。
传入参数也可以是脚本的名称。
输入参数
名称类型描述
classConstructorConstructor < Component > | AbstractedConstructor < Component >The class of component to be retrieved or to be created
返回值: null | Component

示例

import { Sprite } from 'cc';
// get sprite component.
var sprite = node.getComponent(Sprite); 
public getComponent (className : string) :
null | Component
继承自:Renderer.getComponent
获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。
传入参数也可以是脚本的名称。
输入参数
名称类型描述
classNamestringA string for the class name of the component
返回值: null | Component

示例

// get custom test calss.
var test = node.getComponent("Test"); 
public destroy () :
boolean
继承自:Renderer.destroy
返回值: boolean
public addComponent <T extends Component> (classConstructor : Constructor < Component >) :
null | Component
继承自:Renderer.addComponent
向节点添加一个指定类型的组件类,你还可以通过传入脚本的名称来添加组件。
输入参数
名称类型描述
classConstructorConstructor < Component >The class of component to be retrieved or to be created
返回值: null | Component

示例

import { Sprite } from 'cc';
const sprite = node.addComponent(Sprite); 
public addComponent (className : string) :
null | Component
继承自:Renderer.addComponent
向节点添加一个指定类型的组件类,你还可以通过传入脚本的名称来添加组件。
输入参数
名称类型描述
classNamestringA string for the class name of the component
返回值: null | Component

示例

const test = node.addComponent("Test"); 
protected __preload () :
void
返回值: void
protected _clearMaterials () :
void
继承自:Renderer._clearMaterials
返回值: void
protected _destroyImmediate () :
void
deprecated
继承自:Renderer._destroyImmediate
返回值: void
protected _destruct () :
void
deprecated
继承自:Renderer._destruct
Deprecated: since v3.5.0, this is an engine private interface that will be removed in the future.
清理实例的所有引用 注意:此方法不会清理实例上的 getter 与 setter 方法。
返回值: void

示例

// 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;
             }
         }
     } 
protected _getLocalBounds (out_rect : Rect) :
void
继承自:Renderer._getLocalBounds
如果组件的包围盒与节点不同,您可以实现该方法以提供自定义的轴向对齐的包围盒(AABB), 以便编辑器的场景视图可以正确地执行点选测试。
输入参数
名称类型描述
out_rectRectThe rect to store the result bounding rect
返回值: void
protected _getRenderScene () :
RenderScene
deprecated
继承自:RenderScene
返回值: RenderScene
protected _instantiate (cloned ?: Component) :
undefined | Component
deprecated
继承自:Renderer._instantiate
输入参数
名称类型描述
clonedComponent-
返回值: undefined | Component
protected _onMaterialModified (idx : number, material : null | Material) :
void
输入参数
名称类型描述
idxnumber-
materialnull | Material-
返回值: void
protected _onPreDestroy () :
void
deprecated
继承自:Renderer._onPreDestroy
返回值: void
protected lateUpdate (dt : number) :
void
继承自:Renderer.lateUpdate
如果该组件启用,则每帧调用 LateUpdate。
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
输入参数
名称类型描述
dtnumberthe delta time in seconds it took to complete the last frame
返回值: void
protected start () :
void
继承自:Renderer.start
如果该组件第一次启用,则在所有组件的 update 之前调用。通常用于需要在所有组件的 onLoad 初始化完毕后执行的逻辑。
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
返回值: void
protected update (dt : number) :
void
继承自:Renderer.update
如果该组件启用,则每帧调用 update。
该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。
输入参数
名称类型描述
dtnumberthe delta time in seconds it took to complete the last frame
返回值: void
protected _deferredDestroy () :
void
static
继承自:Renderer._deferredDestroy
返回值: void

索引

构造函数
静态属性
静态方法
属性
方法
继承属性
  • _id protected
继承方法