1. 程式人生 > >【Unity3D】【NGUI】UIAnchor

【Unity3D】【NGUI】UIAnchor

概覽

UIAnchor讓你可以固定game objects在螢幕或者其他widgets的某一邊或者某一個角。這是一個關鍵的元件,用來在NGUI中建立模組化的UI。 



是否想讓你的一部分UI粘在螢幕的角落或者邊緣上?比如魔獸世界。在這個遊戲中,遊戲地圖永遠在螢幕的右上角,熱鍵一直在螢幕的下方,不管你用的是多大的螢幕解析度。你如何做到類似的東西呢?用anchors。

NGUI的預設UI佈局會給你提供一個anchor——一個居中的anchor。以魔獸世界的UI為例子,你需要增加額外的兩個anchor。一個設定成TopRight,另一個則為Bottom。之後你給這兩個anchor增加一些子節點,然後修改螢幕的尺寸,你會發現UI會一直在你想要的地方(右上方或者下面)。


通過設定anchor的Container讓一個UI附著在另一個UI上。如果Container是UIWidget,那麼會用widget的dimesions來代替螢幕矩形(就是TopRight將將是相對與這個widget,而不是螢幕)。如果是game object,那麼這個矩形就是game object下的所有節點widget的bounds。因為這個原因,當你用父節點當做Container的時候一定要注意,因為父節點的Container大小會包含這個你要anchor的widget,這可能不是你要的效果(比如你要放在父節點的左上角,但是當這個widget到了左上角後,父節點的左上角由於這個widget的到來可能就變了,之後再次移動widget,周而復始……)。


調整Relative Offset來用相對值來改變位置。 如果X是1就是100%的container寬度. Y是1就是100%的container高度。 0.5 = 50%,等等。也可以是負數。

上面的調整也可以通過用Pixel Offset來實現。就和你想的差不多……通過給定的X、Y的值來