zoukankan      html  css  js  c++  java
  • 【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); 

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

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

  • 相关阅读:
    select poll使用
    linux下tomcat shutdown后 java进程依然存在
    poj 1222 EXTENDED LIGHTS OUT(高斯消元)
    poj 2377 Bad Cowtractors
    C#:总结页面传值几种方法
    从 Racket 入门函数式编程
    程序猿接私活经验总结,来自csdn论坛语录
    什么是SEO?SEO干嘛的?怎么做SEO?
    Java设计模式-观察者模式
    非常特别的一个动态规划新手教程
  • 原文地址:https://www.cnblogs.com/Feiyuzhu/p/4648509.html
Copyright © 2011-2022 走看看