• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            posts - 311, comments - 0, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理

            屏幕自適應(yīng)

            NGUI可以比較方便的實(shí)現(xiàn)屏幕自適應(yīng),但是它的官方教程里面針對這個問題沒有詳細(xì)的教程,所以可能在實(shí)現(xiàn)的時候會走比較多的彎路。以下是我在開發(fā)過程中找到的一個比較方便的實(shí)現(xiàn)方法。

            主要組件

            1. UIAnchor

            這個是用來確定控件在屏幕中的位置,另外有一篇教程專門講它的功能,所有不會再贅述

            2. UIStretch

            這個是用來做縮放的組件。老版本的NGUI是集成在UIAnchor上的。新版本的UIStretch提供了4種縮放方式:

            Horizontal:只縮放水平方向

            Vertical:只縮放垂直方向

            Bose:縮放兩個方向

            BasedOnHeight:基于高度等比縮放

            然后基于這些我自己實(shí)現(xiàn)了一個

            BasedOnWidth:基于寬度等比縮放

            代碼如下:

            [csharp] view plaincopy
            1. else if(style == Style.BasedOnWidth)  
            2. {  
            3.     localScale.x = relativeSize.x * screenWidth;  
            4.     localScale.y = relativeSize.y * screenWidth;  
            5.     localScale.z = localScale.x;  
            6. }  

            這段代碼添加在Update方法里面。為了能將UIStretch掛在UIPanel上面不出問題,所有將Z軸也縮放了。

            自適應(yīng)流程

            1. 創(chuàng)建一個新的UI,將Anchor里面的UIAnchor調(diào)整的合適的位置,注意最好將Anchor設(shè)置為Bottom。

            2. 將Camera的Size調(diào)節(jié)到默認(rèn)屏幕大小。比如UI是以960*640分辨率制作的,那么將Camera的Size調(diào)整到960。

            3. 在Panel上面添加一個UIStretch,模式選擇BasedOnWidth。完成之后你可以看到你的Panel的Scale被修改到了當(dāng)前屏幕的X方向分辨率大小。

            4. 將UI控件添加到Panel上,調(diào)整位置,在Panel下的所有控件都會以X方向?yàn)闃?biāo)準(zhǔn)做等比縮放來適應(yīng)屏幕大小。

            5. 添加一張作為背景的圖,將UISprite的anchor設(shè)置為Bottom,添加之后你可以看到這個sprite可以在不同的分辨率下自適應(yīng)了。

            6. 以上一步添加的背景圖作為參照物來擺放頁面上的控件,這樣不僅僅是大小,位置也同樣會按照相同的模式進(jìn)行等比縮放

            7. 可以在第3步創(chuàng)建的Panel下面添加子Panel,子Panel不需要UIStretch(一般用來做Draggable Panel,否則沒必要,會增加額外的Draw Call)

            8. 如果某一些控件需要定位在屏幕上下左右中的某一角,可以單獨(dú)給他添加一個UIAnchor,這個時候UIStretch只會縮放這個控件的大小,它的位置由他自己的UIAnchor控制了


            午夜精品久久久久9999高清| 久久精品成人免费网站| 国产99久久精品一区二区| 99久久综合狠狠综合久久| 欧美性大战久久久久久 | 精品久久久无码21p发布| 亚洲精品美女久久777777| 91久久福利国产成人精品| 久久99精品久久久久久动态图| 久久久久久久综合狠狠综合| 曰曰摸天天摸人人看久久久| 精品伊人久久久| 欧美亚洲国产精品久久久久| 久久久久久久亚洲Av无码| 久久亚洲私人国产精品| 久久午夜无码鲁丝片秋霞| 久久er热视频在这里精品| 久久久久精品国产亚洲AV无码| 色综合久久中文色婷婷| 久久亚洲国产欧洲精品一| 久久精品国产亚洲AV不卡| 伊人久久成人成综合网222| 天堂无码久久综合东京热| 久久中文字幕一区二区| 久久国产色AV免费观看| 久久人人爽人人爽人人片AV麻烦| 国产日韩久久免费影院| av无码久久久久久不卡网站| 亚洲综合伊人久久大杳蕉| 性做久久久久久久| 久久亚洲日韩看片无码| 亚洲欧美日韩精品久久亚洲区| 精品人妻伦一二三区久久| 久久一区二区三区99| 欧美伊人久久大香线蕉综合| 人妻系列无码专区久久五月天| 免费精品99久久国产综合精品| 99久久精品国产高清一区二区| aaa级精品久久久国产片| 久久综合久久综合九色| 亚洲国产成人久久精品动漫|