Unity屏幕适配之——刘海屏

Unity屏幕适配之——刘海屏,第1张

iphoneX由于带有各种传感器,不得不搞了个刘海屏,各个国产手机也跟了一波风,手机传感器塞的很爽,但苦逼的开发者又增加了新工作——为app增加刘海屏适配。

在游戏里面,很多UI都是紧贴屏幕边缘的,这样就会被刘海屏的刘海盖住,无法点击。网上找了几种适配方案,有的是直接缩短游戏宽度,刘海的部分是一条整齐的黑边。我觉得这样的方案不好,毕竟它缩短了游戏显示宽度;另一种方案是只将UI的部分向刘海内侧推动一截,其余不变,场景还是原来的宽度。我觉得这个方案比较好一些,相对不影响游戏的视角观感。

实现方式:

1首先要检测是否是刘海屏。这里可以使用平台和分辨率来判断,也可以读取SystemInfodeviceModel获取设备型号,或者用这个UnityEngineiOSDevicegeneration也可以,主要是要实现这么个接口就好。

2如果是刘海屏,对需要设置适配的UI(只有那些交互元素贴边的UI需要适配,其余不需要),设置其最底层Panel的offsetMin或者offsetMax (有的博客是直接在刘海屏上同时设置offsetMin和offsetMax,也就是四边都往里缩进,我觉得不太好,毕竟只有一边有刘海,其他的边不需要缩进,否则会缩小游戏场景部分的显示范围) 。这里设置的宽度值我参考他人的博客使用44f,效果还是可以的。

3如果你的游戏允许左右转屏,那么还要监听屏幕转动事件,再根据屏幕方向去设置offsetMin或offsetMax。

最后,现在貌似出了一种技术,可以把传感器直接藏在透明的屏幕下方;也有厂商把传感器放在手机夹层里,需要使用的时候再从屏幕上方d出来。总之希望刘海屏和各种类似的Notch屏赶快淘汰,一整面完好无损的大屏才是审美,Notch什么的太逼死强迫症了。

使用unity中检测设备类型SystemInfodeviceModel方法,这个是只读的字符串类型。如果得到的字符串开头是“iPad”那就是苹果平板,如果得到的是“iPhone”那就是苹果手机。其他就是安卓了,安卓手机类型太多,得到的字符串大多不一样。

利用AirDroid就可以轻松实现手机控制手机,基础功能强大、稳定、流畅,可以随时完成手机 *** 控手机,接下来就和大家分享一下,手机怎么远程控制手机,以及如何用AirDroid软件远程访问手机。AirDroid官网下载地址

1、首先被控手机下载AirDroid远程控制软件→ 点击安装→ 允许“后台运行” → 允许“信任该应用” → 点击“完成”安装 。

2、登陆账号后可以看到个人→ 安全及远程功能设置→ 开启远程控制权限

3、控制端下载AirMirror,点击安装 → 允许“后台运行” → 允许“信任该应用” → 点击“完成”安装。。

4、返回登录页面输入帐号密码点击登录(与被控端一致的帐号,一定要同一个账号)→ 登陆成功 → 点击底部“设备”栏 → 选择要控制的设备→ 点击“远程控制。

5、只需完成以上的设置,就可以一直远程控制到另一台手机。下图为控制效果:

1Audio Source(声音组件)

AudioClip:声音片段,可对其直接赋值声音文件

Output:音源输出

Mute:是否静音

Bypass Effects:音源滤波开关,是否打开音频特效

Bypass Listener Effe:监听滤波开关

Bypass Reverb Zone:回音混淆开关,当勾选时,不执行回音混淆

Play On Awake:开机自动播放

Loop:循环播放

Priority:播放优先级

Volume:音量大小,范围0到1。

Pitch:播放速度,范围-3到3。

Stereo Pan:声道占比

Spatial Blend:空间混合

Reverb Zone Mix:回音混合

3D Soungd Settings:略

2Rigidbody(刚体组件)

Mass:质量。数值越大物体下落越快

Drag:阻力,数值越大物体反向加速度越大

Angular Drag:角阻力,数值越大自身旋转的速度减慢的越快

Use Gravity:是否使用重力

Is Kenematic:是否受物理的影响

Interpolate:设置图像差值

                    默认为none,由于图形更新比物理更新要快,可能会导致物体跳跃式前进。

                    Interpolate模式:物体会根据上一帧物体的位置进行平滑运动。

                    Extrapolate模式:物体会根据下一帧物体的位置进行平滑运动

Collision Detection:碰撞检测

                   对于高速运动的物体来说,当Collision Detection为默认的Discrete时,有可能存在一种情况:前一帧时,物体在碰撞器的一边,下一帧时,物体也已经穿越了碰撞器达到了另一边,以致于检测不到碰撞。这时,我们就需要连续碰撞检测。

                       Discrete:非连续型检测模式(默认)

                  Continuous:连续检测。

                                        更加精细的碰撞检测,但是很耗资源;在这种状态下,当这个刚体与其他普通刚体碰撞时,仍将使用Discrete的碰撞检测,但是与没有刚体的Mesh Collider碰撞时就会连续检测了。

   Continuous Dynamic:连续动态检测。

                                         对没有刚体的Mesh Collider或是对处在Continuous或是Continuous     Dynamic状态下的刚体使用连续碰撞检测,对其他的刚体使用普通的Discrete检测。

               Continuous和Continuous Dynamic的区别在于对Continuous使用何种检 测  ,Continuous使用Discrete,而Continuous Dynamic使用Continuous。 但它们对物理性能都有很大影响。

               刚体和刚体之间的连续碰撞检测,刚体的碰撞器必须是Box,Sphere,Capusle

               刚体和非刚体(静态碰撞器)之间的连续碰撞检测,刚体的碰撞器必须是                                                 Box,Sphere,Capusle,非刚体的碰撞器必须是Mesh

Constraints:冻结,停止某个轴向感应物理引擎的效果

 Freeze Position:冻结x轴方向,y轴方向,z轴方向

Freeze Rotation:冻结x轴旋转,y轴旋转,z轴旋转

3Mesh Collider(网格碰撞体)

Convex:凸起,勾选后,与其它基本碰撞体发生碰撞

    Inflate Mesh:网格膨胀,它有效地扩展了源数据的边缘宽度和斜切锋利的边缘,使所

                            得网格适合物理更好,将此设置为true可以降低碰撞网格的精度

        Skin Width:皮肤厚度,一个合理的设定是使该值等于半径(Radius)的10%

    Is Trigger:触发器

Material:材质,引用何种物理材质决定了和其他对象如何作用

Mesh:网格,获取对象的网格并将其作为碰撞体

4Capsule Collider(胶囊碰撞体)

Edit Collider:点击之后可编辑碰撞范围

Is Trigger:触发器

Material:材质

Center:碰撞体在对象局部坐标空间中的位置

Radius:碰撞体局部坐标宽度的半径

Height:碰撞体的总高度

Direction:对象局部坐标空间中胶囊纵向方向的轴

5Camera(摄像机

Clear Flags:背景显示内容。默认是天空盒子

                Solid Color:纯色,选择此选项显示background颜色

                 Depth Only:仅深度,用于游戏对象不希望被裁减的情况

                  Don't Clear:不清除,不清除任何颜色或深度缓存,其结果是,每一帧渲染的结果叠加在下一帧之上

Background:背景显示颜色。没有天空盒子将显示这个颜色。

Culling Mask:用于选择是否显示某些层,默认是Everything

Projection:摄像机的类型(投射方式)。

      Perspective:透视,摄像机将用透视的方式来渲染游戏对象

                 Field Of View:视野范围,用于控制摄像机的视角宽度以及纵向的角度尺寸

          Orthographic:正交,摄像机将用无透视的方式来渲染游戏对象

                   Size:大小,用于控制正交模式摄像机的视口大小

Clipping Planes:剪裁平面。摄像机的渲染范围,Near为最近的点,Far为最远的点

Viewport Rect:视图矩形。用四个数值来控制摄像机的视图绘制在屏幕的位置和大小,使用的是                         屏幕坐标系,数值在0~1之间。坐标系原点在左下角。

Depth:深度。用于控制摄像机的渲染顺序,较大值的摄像机将被渲染在较小值的摄像机之上

Rendering Path:渲染路径。用于指定摄像机的渲染方法。

              Use Graphics Settings:选择图形设置中的方法

              Forward:快速渲染,传统的渲染路径,它支持每个像素的光照及平行光(directional light)的实时阴影

               Deferred:延迟渲染,会准确如实地渲染光照和阴影。如果有许多实时光照,最适合它,需要一定程度的硬件支持,不支持移动设备

              Legacy Vertex Lit:顶点光照,摄像机将对所有的游戏对象座位顶点光照对象来渲染

               Legacy Deferred(light prepass):具有最低照明保真度和不支持实时阴影的渲染路径。它是前向渲染路径的子集。

在使用正投影时不支持延迟渲染。如果相机的投影模式被设置为正交,则这些值被重写,并且相机将总是使用快速渲染。

Target Texture:目标纹理,用于将摄像机视图输出并渲染到屏幕。

Occlusion Culling:遮挡剔除

HDR:高动态光照渲染,用于启用摄像机的高动态范围渲染功能,因为人眼对的范围的光照强度更为敏感,所有用高动态范围渲染能让场景变得更为真实,光照的变化不会显得太突兀。

Target Display:目标显示

6Directional light(平行光源)

Type:光源类型,可选择不同光源

Baking:用于烘焙模式的,在Lighting面板下点击Bake进行烘焙光照贴图时,生成对应的反射贴图

Color:光照的颜色

Intensity:光照强度

Bounce Intensity:放射光的光照强度

Shadow Type:光源投射的阴影类型

Cookie:一个遮罩,使光线在不同的地方有不同的亮度。如果灯光是聚光灯或方向光,这必须是一个2D纹理。如果灯光是一个点光源,它必须是一个立方图(Cubemap)

Cookie Size:缩放Cookie投影。只用于方向光。

Draw Halo:是否在点光源中使用白雾效果

Flare:设置光源粒子效果

Render Mode:光源渲染模式

Culling Mask:通过层可设置某些地图层不受光照影响

7Point light(点光源)

8Spotlight(手电筒)

Unity可以使用Websocket通过>

以上就是关于Unity屏幕适配之——刘海屏全部的内容,包括:Unity屏幕适配之——刘海屏、Unity区分安卓,苹果是平板还是手机、unity开始一部手机控制另外一部手机等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9571345.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存