• <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++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
            NGUI例子制作過程,由筆者參照NGUI的例子重新自己做了一遍,以加深對NGUI用法的理解。(建議先看下官網的基礎教程,對NGUI有初步了解之后,再看這個帖子。)
            二、Example2 – Interaction
            其最終效果如圖所示,當點擊Show按鈕時,窗口會過度到平躺位置,并出現兩個立方體,這兩個立方體當鼠標位于上面時,會出現按鈕的onHover效果:


            1.         新建一個場景,并把該場景中的MainCamera刪除掉,并通過菜單中的NGUI->Create a new UI新建一個UI結構,如圖所示:

            刪除AnchorUIRoot3D),只留下Panel,并把Panel命名為Message Root,如圖所示:

            MessageRoot下,創建一個空游戲對象,并命名為3D UI,并reset它的所有變換,reset這一步很重要,不然以后的GUI元素可能位置就不對了。如圖所示:

            首先先使用Create a widget工具創建一個Sprite,并命名為UISprite-Background,并在編輯窗口中調整它的大小,設置其深度為-5,該Sprite用于作為背景,其參數如圖所示:

            3D UI層級中,新建一個空游戲對象,并命名為Window,該對象用于整體調整下面GUI的移動和旋轉等。如圖所示:

            下面來制作Window中的各個元素。首先創建背景。使用Create a widget,使用UITiledSprite,該元素可以等你放大它的范圍時,它會以平鋪的方式顯示,這樣可以大大節省資源的體積。該其參數如下:


            使用Create a Widget中的Sliced Sprite,創建標題欄,該元素可以在放大范圍時,拉伸其背景。創建好之后在編輯窗口中改變它的位置和大小,使其在窗口的頂端,其參數和效果如下:

            再為背景添加一個半透明的SlicedSprite,其參數和效果如下:

            創建一個Label,作為該窗口的標題,其參數和效果如下:

             創建一個Label,作為窗口中的文字說明,其參數和效果如下:

              創建一個按鈕,命名為:button-show,設置該按鈕的Label文字描述為Show,設置Background的顏色為深藍色,調整它的位置和大小,最終效果如圖所示:

            為該Button創建一個空的子物體,并命名為Animation,最后對該空物體添加一個Animation組件(Component->Miscellaneous->Animation),并在project窗口中找到NGUI->Examples->Animations->Button,把該腳本添加到Animation組件中的Animation中。(這個Button的動畫可以用于實現按鈕在某種狀態下的動畫效果)接著把Button下面的LabelBackground拖到Animation對象上,成為其子對象,如圖所示:

            Show按鈕添加三個裝飾圖標,這三個圖標都是Sprite元素,可以制作一個之后,使用Ctrl+D復制出另外兩個,并設置它的位置和顏色,最后可以添加一個空的游戲對象,并命名為ICON,把這三個圖標拖到ICON中,這樣可以方便管理,其最終結果如圖所示:

            復制該Button,并把該ButtonLabel文本設置成HIDE,命名為button-hide再把ICON刪除掉,調整它的位置,最終效果如圖所示:

            現在,來完成當鼠標放置在按鈕上面時,即onHover狀態時,它的動畫效果。我們以Show按鈕為例子,Hide的設置類同。選擇Button-show,為該按鈕添加一個UIButtonPlayAnimation組件(菜單中Component->NGUI->Interaction->Button Play Animation)。添加之后,把該按鈕下的Animation賦值給該組件中的Target變量,設置TriggerOnHover,點擊播放,當把鼠標放置在該按鈕上時,可以看到已經有動畫效果了,此時可以對比未對Hide按鈕添加UIButtonPlayAnimation組件時的效果。參數如圖所示:

            Button-hide按鈕進行相同的操作。
            接下來,完成窗口的變換(移動和旋轉),使其當點擊show按鈕時,窗口平躺下來。新建兩個空游戲對象,并命名為WindowActiveWindowInactive,這兩個對象只包含了對象的變換信息(平移、旋轉和縮放)。我們將用這個兩個空游戲對象的變換信息來制作窗口在這兩個位置間的平滑過渡。首先把該兩個游戲對象放置到3D UI對象下,成為它的子物體,然后把這兩個對象reset一下,接著,調整WindowInactive的旋轉角度和位置。而WindowActive保持變換不變。注意,此時當中的scale參數最好跟Window中的縮放一樣,除非你要實現縮放效果,如圖所示:

             選擇Window對象,為其添加一個TweenTransform組件(Compoent->NGUI->Tween-> Transform),該組件可以根據兩個Transform對象來在它們之間進行平滑過渡。添加組件之后,把WindowActiveWindowInactive對象賦值給該組件下的FromTo下,同時把給組件的Enable關掉,我們將使用Show按鈕來控制它的打開,具體參數如下,如圖所示:

             Show按鈕添加UIButtonTween組件(Component->NGUI->Interaction->Button Tween),該組件可以使得Target中的Tween類型的動畫進行開關。把Window對象賦值給該組件下的Target,并設置PlayDirectionForwardTriggerOnClickIf Disabled On Play EnableThenPlay,表示當播放該動畫時,啟動Target中的Tween類型動畫。這個組件是關鍵。點擊播放,可以看到最終的效果,你可以在播放時,在沒按下show按鈕之前選擇Window組件,可以看到此時的TweenTransform組件是關閉的,當你按下show按鈕之后,該組件被打開了,播放完之后,又被關閉。
             
            現在來完成當點擊Hide按鈕時,窗口回到原來的位置,同樣給該按鈕添加一個UIButtonTween組件,把Window對象賦值給該組件下的TargetTrigger設置為OnClickPlay Direction設置為ReverseIf Disabled On Play設置為DoNothing。完成之后,點擊播放,查看效果,如圖所示:


             
              以上幾步就實現了官網上的Interaction中窗口位置的平滑變換效果。關鍵是UIButtonTween和其他的Tween類型之間的連接。最后,把攝像機調整到其他的角度
            久久久亚洲精品蜜桃臀| 亚洲国产精品无码久久久久久曰| 中文字幕人妻色偷偷久久| 亚洲伊人久久综合中文成人网| 久久笫一福利免费导航| 久久精品麻豆日日躁夜夜躁| 香蕉久久一区二区不卡无毒影院| 久久久久久亚洲精品无码| 久久久久久久波多野结衣高潮 | 久久99国产精品久久| 久久国产成人精品国产成人亚洲| 久久久久久久91精品免费观看| 国产精品美女久久久久| 欧美国产成人久久精品| 国产精品美女久久久久| 欧美日韩久久中文字幕| 精品乱码久久久久久夜夜嗨| 亚洲午夜久久久久久久久久| 久久不见久久见免费影院www日本| 亚洲综合伊人久久综合| 久久国产乱子伦精品免费午夜| 色婷婷久久综合中文久久蜜桃av| 久久久久久青草大香综合精品| 精品久久久噜噜噜久久久| 囯产精品久久久久久久久蜜桃 | 精品国产91久久久久久久| 久久国产AVJUST麻豆| 久久国产影院| 久久97久久97精品免视看| 曰曰摸天天摸人人看久久久| 99国产欧美精品久久久蜜芽| 久久AV高清无码| 中文国产成人精品久久不卡| 中文字幕无码av激情不卡久久| 久久精品国产色蜜蜜麻豆| 91精品婷婷国产综合久久| 99久久精品国产一区二区三区| 大美女久久久久久j久久| 成人午夜精品久久久久久久小说| 99久久国产亚洲高清观看2024 | 国产精品久久自在自线观看|