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开始一部手机控制另外一部手机等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)