unity版本2020.1

问题:webgl的横版游戏 1920*1080,在手机上适配的不好,还是竖屏显示,

使用官方的说明,说是只在全屏模式下能旋转,也不好用,可能直接旋转也不会达到理想的效果

解决方案:

1.我这边使用的方案是UI的适配,UGUI,采用的是两套UI,根据不同平台加载不同的资源就行,我这里使用的Addressable来加载资源的,pc端加载的比如是UILogin,手机上加载的是mb_UILogin

(1)需要配置canvas这里 适配Match改成两者之间

(2)就是pc端使用的是横版ui,就是设计分辨率的ui,1920*1080的,

(3)手机端使用的直接竖屏下的横版ui,

这么做的原因是因为我尝试过许多方法,都不好用,方法如下

1.转Canvas的相机 ,因为已经是竖屏,相机转了,在横屏下只显示一半的屏幕,调节相机的Size也不行
2.转预制体根节点,可以,但是对齐的按钮需要调整,那些边缘对齐之类的按钮就会错乱
3.直接调整预制体的内容为横屏,背景图按照中间对齐的方式
4.转UI的Canvas 不行
5.webgl代码实现旋转,这个有点困难,因为打包后的html的unityCanvas是webgl的,webgl是基于openGL发展出来的,没有这方面的经验

所以最终选择的3号方案

2.除UI之外,对于游戏场景中的3d和2d相机的适配,默认的平台是pc,不需要操作,判断如果是在手机上就需要操作

我这里游戏场景的 相机 size是5

Unity会根据当前屏幕实际的宽高比和摄像机的orthographicSize值来计算出摄像机的宽度值,即

摄像机实际宽度 = 摄像机高度 * 屏幕宽高比

比如,iPhone4的屏幕像素为640*960,宽高比为2:3,假设Pixels To Units值为100,那么如果设摄像机高度size值为4.8,那么摄像机实际宽度按照公式算出6.4,刚好就是屏幕的单位宽度。

 我们这里就要重新计算一下相机的实际宽度,假如在手机上的宽高是1080*1920,

那么,就要把宽高反过来,计算相机宽度,因为相机需要旋转90度

 if (UnityCallJs.Instance.GetCurPlatForm() == 1)
        {// 手机上 相机旋转
            transform.rotation = Quaternion.Euler(0,0,90);

            // 屏幕适配
            float orthographicSize = GetComponent<Camera>().orthographicSize;
            orthographicSize *= (Screen.height / (float)Screen.width);
            GetComponent<Camera>().orthographicSize = orthographicSize;
        }

因为默认情况下 orthographicSize是5,在手机的竖屏状态下,是unity计算出来的,我们这里把相机旋转,那么宽高就反转一下来重新计算一下orthographicSize的值,最终得到8.85,正好和横版游戏的显示比例一样。

结语:这是我尝试出来比较好点的方案,如果有同学有更好的方法,还望不吝赐教!

unity发布WebGl在手机上的横屏适配,webgl横版游戏在手机上直接转横屏相关推荐

  1. 基于unity的2D横版游戏开发日志 小结

    前言 说是基于unity的2D横版游戏,实际上只是一个初学unity与C#新人的练手Demo,目前还处于半成状态.美术资源方面全部出自unity免费资源,经过自己的小修,大致拼出了一个游戏.代码方面, ...

  2. Unity 2D打造《盖伦快跑》横版跑酷ARPG

    是一个灵活且高性能的开发平台,用于制作富有创意的3D和2D智能互动游戏.以其"一次创作,多平台部署"的性能使开发者们能够将内容发布到所有最热门的平台. 随着3D游戏市场的高速发展, ...

  3. 用Unity开发一款2D横版游戏demo

    # LanW Game Project 目录 (一) 介绍 (二) 安装教程 (三) 开发流程 1.  新建工程 2.  设置人物 3.  控制主角的移动 4.   添加切换动作的动画 5.   镜头 ...

  4. android 平板横版布局,引领构建安卓平板横屏生态 华为MatePad Pro凭什么?

    "华为将持续引领构建安卓平板横屏生态."11月25日,上海,2019华为MatePad及全场景新品发布会上,华为消费者业务CEO余承东手持首款以Mate命名的旗舰平板,说出了这句话 ...

  5. [Unity]2D横版游戏像素化

    根据参考资料1,可以把2D高清的图片 像素化,成像素游戏 工程下载地址参考资料2 参考资料: 1.[游戏开发]在 Unity 中打造纯像素画面的2D像素游戏 2.PixelCamera2D 3.

  6. 关于我unity创建2d横版游戏的这件事1

    首先插入图片 随便画的不要在意 修改像素数 然后我们就会多出一个背景层 这个是摄像层 可以理解为游戏显示的区域 继续完善 添加其他图层 添加人物组件,使人物更加生动 给地图也添加组件 做到这里可以先点 ...

  7. Unity学习笔记1 简易2D横版RPG游戏制作(一)

    这个教程是参考一个YouTube上面的教程做的,原作者的教程做得比较简单,我先参考着做一遍,毕竟我也只是个初学者,还没办法完全自制哈哈.不过我之前也看过一个2D平台游戏的系列教程了,以后会整合起来,做 ...

  8. unity中实现经典的2d横版单向跳跃平台

    经常玩2d横版游戏的朋友们相信一定对这种单向跳跃平台很熟悉:我希望我的角色可以通过跳跃跳上平台,然后在平台之上按下键盘的下键后从平台上落下. 那么想要实现这样的效果具体要怎么做呢?我们还是先将想要实现 ...

  9. Unity发布WebGL注意事项以及移动端打开webgl网页

    Unity发布WebGL网页端 Unity发布webGL项目时存在很多的易错点,这些错误点没有统一的规律,因为是跨平台开发,开发过程中需要去解决未知的和已知的报错点,下面就我这两年开发WebGL遇到的 ...

最新文章

  1. sql server 2000 数据库。 怎样用sql语句,在没有主键的情况下删除数据库中多条......
  2. linux watch 命令简介 监测 监控变化
  3. 解决Latex图片或者表格浮动
  4. php session 函数,PHP中Session()函数使用
  5. 第四十七期:漫画:什么是公有云、私有云和混合云?
  6. 骨牌铺方格(HDU-2046)
  7. 京东家电渠道赋能战略加速落地,助力家电品牌打通人、货、场间隔
  8. ORA-00257:archiver error问题处理方法
  9. LeetCode:Add Binary
  10. 计算机office视频百度云,word视频教程百度云 office2016视频教程
  11. 计算机科技想象作文600字,科技想象作文600字四篇
  12. 在MySQL数据库中进行模糊查询_数据库模糊查询
  13. CAD字体显示不出来怎么办?
  14. DateUtil时间工具类的基本使用
  15. 各种级数(调和、几何)总结
  16. SQLServer2008 SQLSERVER服务远程过程调用失败解决方案
  17. RAW和QCOW2 两种存储设备格式区别
  18. 【实体对齐·综述】A Benchmarking Study of Embedding-based Entity Alignment for Knowledge Graphs
  19. 扁平风轮播图大屏展示html页面源码
  20. AWS免费服务器申请

热门文章

  1. 百度地图api调用 实现车载导航功能
  2. 零伽壹链改深度解析|区块链技术应用于电子发票管理
  3. 做车牌识别的摄像头注意事项
  4. ABBYY2023PDF及OCR文字识别软件
  5. C++ string类
  6. python自动化办公能做什么-新课介绍 | 用Python自动办公,做职场高手
  7. 山西计算机等级考试科目一模拟试题,考驾照科目一试题100题,老司机教你两招,让你轻松考过!...
  8. MTK8788[android 9.0]汇顶GT9XX TP触摸屏驱动流程分析
  9. 交通外场及内场设备 前端中端后端设备
  10. 推荐几款pdf文件转Excel表格转换器 注册码