在canvas节点上挂上脚本:
import * as cc from "cc"
import { view } from "cc";
import { ResolutionPolicy } from "cc";
import { Size } from "cc";
const { ccclass, property } = cc._decorator;
@ccclass
export default class CanvasFix extends cc.Component {
onLoad() {
let size: Size = view.getVisibleSize();
let designSize = view.getDesignResolutionSize();
// 方形的时候的适配方式
if( size.width / size.height > designSize.width/ designSize.height ) {
view.setResolutionPolicy( ResolutionPolicy.SHOW_ALL );
view.setDesignResolutionSize(designSize.width, designSize.height, ResolutionPolicy.SHOW_ALL);
}
else if( size.width / size.height > designSize.width/ designSize.height ) {
view.setResolutionPolicy(ResolutionPolicy.FIXED_HEIGHT);
}
}
}
在其他任意任意脚本之外写上:
// @ts-ignore
cc.sys._getSafeAreaRect = cc.sys.getSafeAreaRect;
// @ts-ignore
cc.sys.getSafeAreaRect = (): Rect => {
// @ts-ignore
const safeArea = cc.sys._getSafeAreaRect();
const visibleSize = cc.view.getVisibleSize();
if( safeArea.width > visibleSize.width ){
safeArea.width = visibleSize.width;
safeArea.x = 0;
}
return safeArea;
}