项目做横竖屏验证,需要实现动态切换横竖屏的功能,实现起来几句话,但是实际遇到了一堆问题。

基本实现

基本流程:
1.修改Screen的设置
2.设置CanvasScaler参数
3.重新异形屏适配

Screen.orientation = ScreenOrientation.Landscape;
Screen.orientation = ScreenOrientation.Portrait;设置可旋转方向
Screen.autorotateToPortrait = !isLandscape;
Screen.autorotateToPortraitUpsideDown =  !isLandscape;
Screen.autorotateToLandscapeLeft = isLandscape;
Screen.autorotateToLandscapeRight = isLandscape;然后设置CanvasScaler
CanvasScaler.matchWidthOrHeight
CanvasScaler.referenceResolution

注意事项:
1.Screen.Orientation设置完,不是立即生效,会有几帧的延迟。所以如果设置完,立即去获取screen.with, screen.height,还是老的值。
2.CanvasScaler也是有这个问题,设置完后,会在下一帧才会生效到Canvas上, 调整Canvas的scale, size等。
3.部分机型,遇到了crash问题, 由于会保存上次的屏幕设置结果,会再启动时读取,然后设置对应的screen朝向。会在启动时,遇到报错:UnityDefaultViewController should be used only if unity is set to autorotate。最后找了一圈,untiy的projectsetting中的default Orientation = autoOrientation,在启动脚本的Awake()中重新设置Screen.orientation。把这个设置移动到Start()中就好了

自动旋转屏幕切换横竖屏

ios下
监听屏幕旋转方向
就是ios发送事件到unity,后续的流程都一样,关键点就是要知道屏幕发生了旋转。当然前提就是要先设置screen.oriation = ScreenOrientation.AutoRotation。并开启手机的方向锁定。

unity动态切换横竖屏采坑记录相关推荐

  1. lvgl实现动态切换横竖屏

    有两种方式.一种是通过lvgl自带的软件选择.但是这个效率很慢.而且只支持90度.180度.270度的旋转.不一定达到想要的效果.我需要实现的是这种效果.软件旋转没有办法实现.旋转后会镜像过去.而且如 ...

  2. Unity 之 代码切换横竖屏

    Unity 之 代码切换横竖屏及设置部分简介 在Inspector面板上设置,一般在第一次打包时都会在这个面板上进行横竖屏锁定或者切换设置,解释如下图: 使用代码进行横竖屏切换: public voi ...

  3. mysql8.0.19.0_分享MySql8.0.19 安装采坑记录

    上篇文章给大家介绍了MySql8.0.19 安装过程,需要的朋友可以点击查看.https://www.jb51.net/article/178988.htm 1.ERROR 1820 (HY000): ...

  4. mysql8.0依赖_分享MySql8.0.19 安装采坑记录

    上篇文章给大家介绍了MySql8.0.19 安装过程,需要的朋友可以点击查看.https://www.jb51.net/article/178988.htm 1.ERROR 1820 (HY000): ...

  5. Ubuntu18安装微信(deepin-wine版本)完整过程以及采坑记录

    Ubuntu18安装微信(deepin-wine版本)完整过程以及采坑记录(亲测运行) git clone https://gitee.com/wszqkzqk/deepin-wine-for-ubu ...

  6. Centos7.9上利用cephadm安装Ceph Octopus 15.2的采坑记录,附带K8S挂载方法

    Centos7.9上利用cephadm安装Ceph Octopus 15.2的采坑记录,附带K8S挂载方法 0.亮点 1 准备 1.1 修改历史记录 1.2 升级系统内核 1.3 配置免密登录 问题1 ...

  7. iOS 微信SDK1.8.6后需要UniversalLink解决方案及采坑记录

    项目最初因审核原因,一直使用iOS原生分享, 最近因项目需求要求, 接入微信分享, 以为和原来的没有区别, 但是接入时才发现改动的地方还是挺多的, 主要是需要配置UniversalLink和提包时的一 ...

  8. H5拍照、预览、压缩、上传采坑记录

    H5拍照.预览.压缩.上传采坑记录 公司项目前段时间需要实现手机拍照上传的功能,本来以为用createObjectURL和canvas可以很轻松的实现,结果发现问题多多,特此记录下来. DEMO预览( ...

  9. 具体怎么使用视频播放屏幕的感重力切换横竖屏

    之前 , 只是介绍了一些代码去实现视频播放的平复翻转这一功能!可以随你意进行屏幕的翻转,满足用户的需求.但是,当你真的去做一个像的时候,会有问题出现的哦!那到底是什么问题呢?待我..娓娓道来! 是酱汁 ...

最新文章

  1. 梯度提升决策树(GBDT)与XGBoost、LightGBM
  2. [译]ASP.NET Core 2.0 网址重定向
  3. 23种设计模式及其对应实例-转
  4. 多线程共用全局变量可能存在的威胁
  5. print python 如何加锁_深度解密Python单例模式
  6. java静态内部类(嵌套类)
  7. pygame里面物体闪烁运动_利用自闪烁发光二极管探究小车在倾斜轨道上的运动规律...
  8. java druid sqlite_springboot整合druid抛出dbType not support : sqlite异常
  9. SQL Server 2014如何提升非在线的在线操作
  10. 教你用Python抓取百度翻译
  11. 汇编语言第二课作业2.3
  12. spring mvc 基于表单的认证过程及cookie应用和session管理
  13. ElasticSearch之 控制相关度原理讲解
  14. 配置springMVC时出现的问题
  15. 【免疫优化物流选址】基于MATLAB的免疫优化算法在物流配送中心选址中的应用仿真
  16. 网站扫码登录时怎么一回事?
  17. 模仿 alexa 工具条
  18. c语言 游程编码,游程编码C语言.doc
  19. IDEA安装Yapi插件
  20. Unity 3D中级项目:捕鱼达人

热门文章

  1. todesk远程控制软件的使用
  2. tcpdump 参数及使用简析
  3. photoshop2022中文版怎么改成英文版?ps中文版改成英文版教程
  4. CTF中常见密码题解密网站总结
  5. 用php+mysql+ajax实现淘宝客服或阿里旺旺聊天功能 之 后台页面
  6. HTML大学生动漫网页设计作业源码 ~ 火影忍者动漫7页面带特效带轮播(HTML+CSS+JavaScript)...
  7. 清华计算机类专业介绍,清华大学本科计算机专业的课程都有哪些?
  8. 2、编译、交叉编译概念小记
  9. 实名认证直接刷脸,公安部研发网上身份证
  10. linux中 代表什么,Linux中的$1代表什么?