1、通過RectTransform中的Anchors和Pivot來進行控件和窗體的布局適配。
Anchors控制當前Panel相對於父窗體的布局位置,可以設置為居中或者左上角,當父窗體拉伸的時候當前Panel可以自動布局到正確位置。同時這里可以設置拉伸,比如主界面一般是全屏拉伸的,這種情況可以在這里處理。
Pivot是當前控件坐標系的錨點位置,通過代碼調整坐標位置的時候需要注意這個的設置。
2、通過CanvasScaler的設置來進行多分辨率適配。
UiScaleMode一般選擇Scale With Screen Size,並設置好設計分辨率。其他兩個選項都是固定像素大小。
Screen Match Mode中一般選擇Expand,它可以保證ui中的所有元素都在屏幕內部。 相對比的一個選項是Shrink,它可以保證不留空白邊。
3、多分辨率的思路是Scaler中選擇Expand保證所有ui元素在屏幕內部。少部分界面,如主界面、戰斗界面等根據需要設置Anchors中的全屏拉伸。注意,這里的拉伸的含義僅僅是設置Panel的寬、高,並不影響子控件的縮放,但是會影響其布局。
4、注意,如果是Prefab加載ui的時候,設置父節點使用transform.SetParent(root, false) 這個函數調用,而不要直接設置parent屬性,否則會存在RectTransform大小或坐標錯誤的問題。