UGUI 之 Canvas布局層級關係(一)_Unity3D之UGUI

來源:互聯網
上載者:User

一、用過NGUI的人們都知道,各種NGUI的sprite之間是可以有dept來進行分層管理,以便處理層級間的關係,而在unity4.6開始的UGUI中,這是通過Canvas來設定深度關係的

我在開發中設計了三個Canvas,來處理不同的UI訊息相應類型

StaticCanvas

TouchOrMouseCanvas

ButtonCanvas

1、StaticCanvas ,其Sort Order我設定為0,我用來處理一些不用來進行觸屏和按鈕(這裡針對的都是手機)相應的UI放置,如角色的血量,魔法值,傷血的HUDTXT,敵人頭頂的血量提示等

2、TouchOrMouseCanvas,其Sort Order我設定為1,是為了進行觸屏響應訊息而單獨設定的,如通過觸屏來改變攝像機的旋轉,在TouchOrMouseCanvas目錄下添加一個Panel,在加一個Event Triger組件,設定其Enent type為Drag,再給它一個具體的訊息響應函數技能實現觸屏控制相機的旋轉。


3、ButtonCanvas,其Sort Order我設定為2,是是用來處理各種按鈕訊息響應的,各種按鈕的UI都放在這

注意:

這些Canvas的Render Mode必須一樣,其Sort Order才能起作用。如下圖所示



二、UGUi的組件除了Canvas之外是沒有Inspector層級設定概念的,同一根目錄下的組件,是以根目錄下所在Hierarchy關係決定的,誰在下,在game和scene視圖中,誰就遮擋住誰。



三、另外設定一個Camera來單獨渲染UI的layer層時的注意事項

如下圖攝像機設定


然後Canvas的Render Mode要設定為Screen Space-Camera

將自己設定好的攝像機拖拽到Render Camera中

而且Canvas層的Layer要跟自己設定好的攝像機的Culling mask一樣,否則game視野中會看不到

Plane Distance要大於1的數(0到1之間也行,但是得自己調節才能在game視圖中看到),否則game視圖看不到

上面圖UI攝像機的Culling mask為UIlayer層

下面是一個相應的Canvas截圖


聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.