【Unity】关于屏幕自适应的思路

关于NGUI的屏幕自适应,大体思路可以这样做:

     比如要实现在屏幕的左侧做一个长条背景:

     可以看出这部分图片是和屏幕高度一致的。那么只要得到“制作时的屏幕高度”以及“当前运行屏幕高度”,求两个值的比值,然后当前UI的大小乘上这个比值即可得到UI适应后的大小。先完成这一步:

     1.新建一个widget。因为此UI要一直靠在屏幕左边,所以它的pivot设置为左边。Size设置成当前(制作时)的屏幕大小,比如1280X800.

     2.新建Sprite且为widget的子物体。摆好位置。

     3.建立自适应脚本并挂在widget上,就简单几句话,所以直接贴上了:

float w=1280, h=800;//设置默认屏幕大小(制作时的屏幕大小)
void Start ()
{
      this.transform.localScale=new Vector3(Screen.height / h,Screen.height/ h,1);
}

      点击运行发现大小已经适应了屏幕,但是位置明显跑偏了..如了个图~:

      这时应该能想到问题所在了,UI的位置可以利用“当前屏幕宽度/2”求得

      即: this.transform.localPosition = new Vector3(-Screen.width/2,0,0); 

大功告成~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

       同理可得 :向右自适应,向上自适应,向下自适应的做法。(无非也是找出来高度的比值或宽度的比值)

转载于:https://www.cnblogs.com/Feiyuzhu/p/4648509.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值