Unity,发布ios和Android的包,UGUI,异形屏适配问题。
@TOC
前言
unity发布移动端需要做ui的适配,我们用的是UGUI,暂且提供一种我们自己的ui适配解决方案,包含异形屏的。
一、区分Android手机,Android平板,Iphone,Ipad
也查到了各种各样的区分方法。
我们是通过长宽比来区分的,下面直接上代码。
#if UNITY_ANDROID
//通过屏幕比例判断是否刘海屏
if ((float)Screen.width / Screen.height > 2)
{
isHaveLiuhai = true;
}
if ((float)Screen.width / Screen.height
#if UNITY_IOS
//通过屏幕比例判断是否刘海屏
if ((float)Screen.width / Screen.height > 2)
{
isHaveLiuhai = true;
}
if ((float)Screen.width / Screen.height
二、UGUI的适配
1.Canvas设置
这是canvas的相关设置
2.相应的ui缩进,来适应异形屏
设置ui缩进的代码如下(示例):
//设置节点的位置
public void SetAdapta(Transform target, float x)
{
#if UNITY_IPHONE
if (isHaveLiuhai)
{
RectTransform rect = target.GetComponent();
Vector2 anPos = rect.anchoredPosition;
anPos.x += x;
rect.anchoredPosition = anPos;
}
#endif
#if UNITY_ANDROID
if (isHaveLiuhai)
{
RectTransform rect = target.GetComponent();
Vector2 anPos = rect.anchoredPosition;
anPos.x += x;
rect.anchoredPosition = anPos;
}
#endif
}
这是调用的代码
IPhoneAdapta.Instance.SetAdapta(scanButton.transform, -144);
表示右侧的ui向左缩进144,左侧ui向右缩进的话,把负值变为正值即可。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
问题背景: 客户在一套集群上配置了两个服务名,两套业务分别在两个节点进行业务处理 但每当集群发生重启问题,则会导致服务名的漂移,需要手动将业务切换回去 操作: 切换命令如下 srvctl relocate service -d DB_NAME -s SERVI…