创建一个mjs 引入即可. 代码如下:
import * as cc from 'cc';
//3.8.4 修复透明度得问题
if (cc.VERSION.indexOf("3.8.4") > -1){//合并 3.8.5 pr
cc.UIOpacity.prototype.setEntityLocalOpacityDirtyRecursively = function(dirty){
if (JSB) {
// const render = this.node._uiProps.uiComp as UIRenderer;
// if (render) {
// render.setEntityOpacity(this.node._uiProps.localOpacity);
// }
// UIRenderer.setEntityColorDirtyRecursively(this.node, dirty);
//UIOpacity.setEntityLocalOpacityDirtyRecursively(this.node, dirty, 1, false);
cc.UIOpacity.setEntityLocalOpacityDirtyRecursively(this.node, dirty, this._parentOpacity, false);
}
}
cc.UIOpacity.prototype._parentChanged = function(){
if (!JSB) {
return;
}
const parent = this.node.getParent();
let opacity = 1;
if (parent) {
this._parentOpacity = this._getParentOpacity(parent);
opacity = this._parentOpacity;
} else {
this._parentOpacityResetFlag = true;
}
cc.UIOpacity.setEntityLocalOpacityDirtyRecursively(this.node, true, opacity, false);
}
cc.UIOpacity.prototype.onEnable = function(){
this.node.on(cc.NodeEventType.PARENT_CHANGED, this._parentChanged, this);
this.node._uiProps.localOpacity = this._parentOpacity * this._opacity / 255;
if (this._parentOpacityResetFlag || this._parentOpacityResetFlag == null) {//默认值应该是true,
this._parentOpacityResetFlag = false;
this._parentChanged();
}
else{
this._setEntityLocalOpacityRecursively(this.node._uiProps.localOpacity);
}
}
}
`