EXACT FIT无效

最新IDE 2.4.3,代码设置cc.view.setDesignResolutionSize(750, 1334, cc.ResolutionPolicy.EXACT_FIT);无效,论坛找了一圈,都是发了问题没人解决的,官方的开发人员列成issue然后就没然后了??

现在EXACT_FIT方案怎么实现?

自己实现,后续入坑的可以看看。

Canvas设置完设计分辨率,勾选fitH、fitW,取消Weight组件。
在代码里,同时增加下述代码:

onLoad(){
    cc.debug.setDisplayStats(false);

    let currentSize = cc.view.getCanvasSize();
    let designSize = cc.view.getDesignResolutionSize();
    let scale = this.convertScale(designSize.width, designSize.height, currentSize.width, currentSize.height);
    cc.Canvas.instance.node.scaleX = scale.scaleW;
    
    // cc.Canvas.instance.node.scaleY = scale.scaleH;
    // console.log( scale.scaleW);
}

convertScale(dW: number, dH: number, cW: number, cH: number): { scaleW: number, scaleH: number } {
let a = dW / dH;
let b = cW / cH;
let scaleW = 1;
let scaleH = 1;
if (a < b) {
scaleW = b / a;
} else {
scaleH = a / b;
}
return { scaleW: scaleW, scaleH: scaleH };
}

引擎采用fit_all模式,之后代码对画布拉伸。

老哥这个方法可以的,在2.4上比较完美的全屏方案