From 4e383cbaa838deff40f2c7e56d2a4d76ca0ba246 Mon Sep 17 00:00:00 2001 From: GodChouyu <956909925@qq.com> Date: Fri, 14 Nov 2025 18:44:40 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=94=AF=E6=8C=81=E6=B7=B7=E5=90=88?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- source/src/display/BlendMode.ts | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/source/src/display/BlendMode.ts b/source/src/display/BlendMode.ts index 4837f2f7..25aa5d37 100644 --- a/source/src/display/BlendMode.ts +++ b/source/src/display/BlendMode.ts @@ -1,4 +1,4 @@ -import { gfx, Node, UIRenderer } from "cc"; +import {gfx, Node, UIRenderer} from "cc"; export enum BlendMode { Normal, @@ -18,11 +18,14 @@ export enum BlendMode { export class BlendModeUtils { public static apply(node: Node, blendMode: BlendMode) { let f = factors[blendMode]; - let renderers = node.getComponentsInChildren(UIRenderer); - renderers.forEach(element => { - (element).srcBlendFactor = f[0]; - (element).dstBlendFactor = f[1]; - }); + node.components.forEach(component => { + if (component instanceof UIRenderer) { + // protected属性,cocos源码: + // https://github.com/cocos/cocos-engine/blob/10ec595/cocos/2d/framework/ui-renderer.ts#L241 + component["_srcBlendFactor"] = f[0]; + component["_dstBlendFactor"] = f[1]; + } + }) } public static override(blendMode: BlendMode, srcFactor: number, dstFactor: number) {