UGUI-滾動矩形 (Scroll Rect)
當占用大量空間的內容需要在小區(qū)域中顯示時,可使用滾動矩形。滾動矩形提供了滾動此內容的功能。
通常情況下,滾動矩形與遮罩 (Mask)?相結合來創(chuàng)建滾動視圖,在產生的視圖中只有滾動矩形內的可滾動內容為可見狀態(tài)。此外,滾動矩形還可與一個或兩個可拖動以便水平或垂直滾動的滾動條 (Scrollbar)?組合使用。




詳細信息
滾動視圖中的重要元素包括視口、滾動內容以及可選的一個或兩個滾動條。
根游戲對象具有滾動矩形組件。
視口具有遮罩組件。視口可以是根游戲對象,也可以是作為根的子項的單獨游戲對象。如果使用自動隱藏的滾動條,則視口必須是子項。需要在滾動矩形的?Viewport?屬性中引用視口矩形變換。
所有滾動內容必須是作為視口子項的單個內容游戲對象的子項。需要在滾動矩形的?Content?屬性中引用內容矩形變換。
滾動條(如果使用)是根游戲對象的子項。請參閱滾動條頁面了解有關滾動條設置的更多詳細信息,并參閱下面的滾動條設置部分了解有關滾動視圖的滾動條設置的信息。
下圖顯示了視口是滾動視圖根節(jié)點的子項的設置。使用 GameObject > UI > Scroll View 菜單選項時,默認情況下會采用此設置。

要滾動內容,必須從 ScrollRect 的邊界內部而不是內容本身接收輸入。
使用 Unrestricted 移動類型時要小心,因為可能會以無法挽回的方式失去對內容的控制。使用 Elastic 或 Constrained 移動類型時,最好調整內容位置以確保其在 ScrollRect 的邊界內開始移動,否則當 RectTransform 嘗試將內容恢復到其邊界內時,可能會發(fā)生意外行為。
滾動條設置
可選擇性地將滾動矩形鏈接到水平和/或垂直滾動條。這些控件通常作為視口的同級放置在層級視圖中,并且當存在這些控件時,應分別拖動到滾動矩形的?Horizontal Scrollbar?和?Vertical Scrollbar?屬性中。請注意,此類水平滾動條上的?Direction?屬性應設置為?Left To Right,而垂直滾動條上應設置為?Bottom To Top。
如果由于滾動條大小不超過視口而不需要滾動內容,可選擇讓滾動條自動隱藏。請注意,自動隱藏僅在播放模式下發(fā)生。在編輯模式下,始終顯示滾動條。這樣可以防止在不應該的情況下將場景標記為“臟”,并且還有助于讓創(chuàng)建的內容即使在顯示滾動條時仍有空間。
如果其中一個滾動條或兩個滾動條的可見性行為都設置為?Auto Hide And Expand View,則在隱藏滾動條時會自動展開視口,以便占用滾動條原本使用的額外空間。如果使用此設置,視圖的位置和大小將由滾動矩形決定,并且水平滾動條的寬度以及垂直滾動條的高度也由滾動矩形決定。使用此設置時,視口以及滾動條都必須是滾動矩形根游戲對象的子項。
提示
使用內容 RectTransform 的軸心和錨點可以確定內容伸縮時在滾動視圖內的對齊方式。如果內容應與頂部保持對齊,請將錨點設置為父項的頂部,并將軸心設置為頂部位置。
請參閱使 UI 元素適應其內容的大小頁面,了解如何使內容矩形變換自動調整大小來適應內容。