【UGUI】使用Screen.safeArea适配全面屏/异形屏_萧然CS的博客-程序员秘密

技术标签: UGUI  unity  

Unity中使用Screen.safeArea适配全面屏/异形屏

 

屏幕高度(即屏幕最高点):Screen.height,安全区域最高点:Screen.safeArea.yMax,屏幕顶部异形区域大小:Screen.height - Screen.safeArea.yMax

(安全区域最低点:Screen.safeArea.yMin,可用于屏幕底部适配(苹果Touch Bar))

        //计算屏幕顶部异形大小
        int safeAreaOffset = (int)(Screen.height - Screen.safeArea.yMax);
        //UI偏移
        RectTransform rectTransform = transform.Find("SafeArea").GetComponent<RectTransform>();
        rectTransform.offsetMax = new Vector2(0,-safeAreaOffset);

TestPanel:UI界面根节点,添加背景图片,可忽略异形屏的影响将图片填充满屏幕

SafeArea:安全区域根节点,在UI被加载后执行以上代码,可以根据异形屏大小动态设置顶部偏移量,避免被异形屏遮挡

     

 未广泛测试机型,有待验证! 还可以根据设备类型(SystemInfo.deviceModel)、设备名称(SystemInfo.deviceName),手动设置每个机型的偏移量

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_39108767/article/details/114396833

智能推荐

C语言中的BYTE和char_Jerry_Lee01的博客-程序员秘密

在C语言中,字符(character)这个术语具有两个层次上的含义:书写源程序的字符和程序处理的字符。  例如,在下面的源程序中“""”之内的“你”、“好”、“,”、“C”、“!”、“\n”就属于程序要处理的字符。 #include int main(void){ printf("你好,C!\n"); return 0;}

黑马程序员-OC语言-封装_fuyao19920730的博客-程序员秘密

封装的实质 是指隐藏对象的属性和实现细节,对外提供公共访问方式,封装是一种思想. 方法默认就是用了封装的思想. 属性有两种方式操作: 1直接操作.public 2.封装操作:通过给外部暴露两个方法:set方法用于设置值.get方法用于获取值. 一个属性的set与get方法不是必须的,看情况,如果你希望让外部调用者可以设置值, 则你就给定义set方法.如果你希望外部能获取值,

服务器ssd硬盘的读写速度,SSD完胜HDD:读写速度和IOPS对比_不负光阴的博客-程序员秘密

04SSD完胜HDD:读写速度和IOPS对比在HDD机械硬盘时代,读写速度和寻道时间是最重要的两项指标,目前HDD的读写速度最快能达到225MB/秒、读写寻道能力在数秒时间。SSD将HDD的寻道时间直接无视,因为它是毫秒级别。对于SSD来说,它的读写速度和随机读写能力是至关重要的两项指标。下面进行①读写速度和②随机读写能力对比:注:小编自用主机,将此块SSD作为“C区系统盘”使用。这和以往小编将S...

标准单元工艺库(TSMC 90nm)文件详解_tsmc design_夏风喃喃的博客-程序员秘密

以TSMC 90nm标准单元工艺库为例,详解工艺库的结构与内容。

完美实现跨域Iframe高度自适应【Iframe跨域高度自适应解决方案】_nebear的博客-程序员秘密

Iframe的强大功能偶就不多说了,它不但被开发人员经常运用,而且黑客们也常常使用它,总之用过的人知道它的强大之处,但是Iframe有个致命的“BUG”就是iframe的高度无法自动适应,这一点让很多人都头疼万分。百度或是谷歌一下,确实很多解决方法,但尝试一下,会发现问题很多:浏览器兼容性差,不能自适应,仅支持同域Iframe等诸多问题,尤其是跨域Iframe高度自适应问题。网上根本找不到一种可行

随便推点

round 函数_qpc411074777的博客-程序员秘密

round 函数Round to nearest integer舍入为最近的整数(四舍五入)Syntax语法Y = round(X)Description描述Y = round(X) rounds the elements of X to the nearest integers. For complex X, the imaginary and real part

iOS —— 两套自动打包脚本_weixin_34293911的博客-程序员秘密

前言项目每次更新要打十几个包,广发说传承下来的自动打包脚本突然不好使了,现在每次打包上传都要弄到凌晨,以后改名叫稀发好了。看着他越来越秃的头,我这父爱就藏匿不住,必须要帮他分担(当然是被逼的)。这个项目十几个包,不同图标、App名字,手动打包不但慢,而且重复枯燥的工作出错概率也指数上升。所以如果你的项目也要打几个包的话,花时间学习自动打包还是值得的。如果只用打一个包,虽然自动打包时间会快点,但...

JCIM| 基于双向RNN的分子生成模型_DrugAI的博客-程序员秘密

今天给大家介绍的是被誉为“欧陆第一名校”苏黎世联邦理工学院(ETH Zurich)化学与应用生物科学系博士生Francesca Grisoni和制药行业顾问Gisbert Schneider教授于2020年6月发表在Journal of Chemical Information and Modeling的一篇论文,作者受双向RNN和SMILES本身的结构特性启发,提出一种可用于SMILES生成和数据增强的新的双向RNN分子生成模型——BIMODAL。该模型通过交替学习进行双向分子设计,并且该模型与...

重定向与web.xml设置优先级_如何让项目下的web.xml配置优先_袁海的博客-程序员秘密

1、设置某项的启动顺序,一般像数据库连接池等模块需要优先启动的,就在web.xml中设置启动优先级。如:&amp;lt;load-on-startup&amp;gt;1&amp;lt;/load-on-startup&amp;gt;中间的值越小,优先级就越高。 2、对于请求的重定向只需要依据代码:   response.sendRedirect(&quot;要转向到的网址&quot;);   这句代码其实内部做了两件事:1、将响应码设置为302; ...

user32.dll 函数说明_user32 函数_qq_30122639的博客-程序员秘密

函数名称 说明 ActiveKeyboardLayout 激活一个不同的键盘布局,该布局必须先由 LoadKeyBoardLayout函数装载 AdjustWindowRect 根据希望的用户矩形大小来

推荐文章

热门文章

相关标签