Cocos creator 3.8.5 如何实现强制全屏占用非安全区域

目前使用官方提供的组件 cc.SafeArea 实现了安全区域全屏,但依然难于满足,我是横屏的,目前左右两边都有空出一厘米,很不好看,有啥解决方案吗?编辑器里每个UI界面都使用组件 cc.Widget 设置了看似全屏了,运行起来还是效果没有预期

还有一个问题,不知道是不是BUG,在华为荣耀手机没出现,在小米澎湃系统出现:

左侧安全区域花屏

说错了,在左侧非安全区域-刘海

摄像机的原因吧,不是有 3 个选项,color 那个选一下试试

你好,具体哪个呢?没理解

clear flags 那里

好,我试试看,感谢

背景图片单独拿出来,不要加SafeArea组件,跟用了SafeArea组件的UI节点平级。

确实是你说的这样做的呢


可依然是达不到预期

加个反向antisafearea控件,widget的alignment反向取值

找不到这样的组件antisafearea,在widget下也找不到alignment,可以说具体一些吗?这个组件下的取值如图

很简单的东西被你搞得很复杂。
1、 首先你是横屏的。那么根据你的设计分辨率,你在 iPad 这类屏幕基本上是宽度适配。在正常长屏手机上高度适配。
2、确定适配规则后拿到屏幕在你的设计分辨率下的实际对应尺寸。比如你设计分辨率是 1334×750
经过计算后,屏幕在你的设计分辨率下,实际分辨率是 1500×750。
这样你的背景图不拉伸的情况下如果只是 1400 ×750 的尺寸,两边肯定留出黑边。
3 而安全区用 sys.getSafeAreaRect 来计算,不要用 cc.safearea 组件,然后根据屏幕尺寸调整到设计分辨率规则下。然后去调整各个 UI 的位置。这些调整的东西弄成组件,挂到各个需要调整的节点就可以了。
这个东西大家都用起来没问题,问题肯定出在你理解错误上。

1赞

背景图片要跟SafeArea同级,你这img_bg节点明明是SafeArea的子级
根节点只加Wdiget,根节点下面有两个子节点:
一个是背景图片节点,只加Wdiget;
另一个是安全区域节点,加Wdiget和SafeArea。
你的UI节点全放到安全区域节点下就可以了。
image

1赞

原来如此,理解了,我去试试,按你说的应该可以了,非常感谢 :+1:

确实,我理解的不到位,固有思维以为加了组件会自动全屏适配,感谢讲解 :+1: