ScrollView は、そのコンテンツをスクロール可能な領域内に表示します。ScrollView にコンテンツを追加すると、そのコンテンツが ScrollView のコンテンツコンテナ (#unity-content-container
) に追加されます。
You can create a ScrollView with UI Builder, UXML, or C#. The following C# example creates a ScrollView with both horizontal and vertical scroll capabilities, that contains a title Label, and a number of Toggle elements:
var scrollView = new ScrollView(ScrollViewMode.VerticalAndHorizontal);
scrollView.style.width = 250;
scrollView.style.height = 400;
scrollView.Add(new Label("List of checkboxes:"));
for (int i = 0; i < 100; ++i)
{
var toggle = new UnityEngine.UIElements.Toggle()
{ text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua." };
scrollView.Add(toggle);
}
スクロールバーの移動方向の指定や、水平あるいは垂直のスクロールバーを表示するかどうかの指定、およびスクロールバーの速度の制御が行えます。
UI Builder でスクロールバーの移動方向を設定するには、ScrollView の Inspector ウィンドウで、以下のいずれかの Mode オプションを選択します。
UI Builder でスクロールバーの可視性を設定するには、ScrollView の Inspector ウィンドウで、 Horizontal Scroller Visibility または Vertical Scroller Visibility の以下のオプションのいずれかを選択します。
To control the scroll speed, adjust the values of the following properties in UI Builder, UXML, or C# code. The higher the value, the faster the scrolling speed.
horizontal-page-size
controls the speed of horizontal scrolling when using a keyboard or the on-screen scrollbar buttons (arrows and handle). The speed is calculated by multiplying the page size by the specified value. For example, a value of 2
means that each scroll movement covers a distance equal to twice the width of the page.vertical-page-size
controls the speed of vertical scrolling when using a keyboard or the on-screen scrollbar buttons (arrows and handle). The speed is calculated by multiplying the page size by the specified value. For example, a value of 2
means that each scroll movement covers a distance equal to twice the length of the page.mouse-wheel-scroll-size
controls the speed of scrolling when using the mouse wheel. The speed is calculated by dividing the specified value by 18
, which corresponds to the default line height of 18px
. For example, if you set the value to 36
, each scroll movement covers a distance equivalent to two lines of content.Note: You can also override the USS built-in variable –unity-metrics-single_line-height
to control the speed of scrolling when using the mouse wheel. The mouse-wheel-scroll-size
attribute takes precedence over the –unity-metrics-single_line-height
USS variable.
ScrollView 内でビジュアル要素を折り返して、連続して表示することができます。行が一杯になると、次の行に続けて要素が表示されます。
To wrap visual elements inside a ScrollView, set the ScrollView’s content container flex-direction
to row
and flex-wrap
to wrap
.
USS:
.unity-scroll-view__content-container {
flex-direction: row;
flex-wrap: wrap;
}
C#:
scrollview.contentContainer.style.flexDirection = FlexDirection.Row;
scrollview.contentContainer.style.flexWrap = Wrap.Wrap;
ScrollView 内の要素のテキスト (例: Label 要素のテキスト) を折り返すには、次のようにします。
white-space: normal;
を適用します。C# クラス: ScrollView
名前空間: UnityEngine.UIElements
基本クラス: VisualElement
この要素は以下のメンバー属性を持ちます。
名前 | 型 | 説明 |
---|---|---|
elasticity |
float |
ユーザーがスクロールビューの境界を越えてスクロールしようとした時に使用される弾性の量。 弾性は touchScrollBehavior が Elastic に設定されている場合にのみ使用されます。 |
horizontal-page-size |
float |
このプロパティは、キーボードまたは画面上のスクロールバーボタン (矢印とハンドル) 使用時に、ページのサイズに基づいて縦スクロールの速度を制御します。 |
horizontal-scroller-visibility |
UIElements.ScrollerVisibility |
横スクロールバーを表示するかどうかを指定します。 |
mode |
UIElements.ScrollViewMode |
Controls how the ScrollView allows the user to scroll the contents. ScrollViewMode The default is ScrollViewMode.Vertical . Writing to this property modifies the class list of the ScrollView according to the specified value of ScrollViewMode . When the value changes, the class list matching the old value is removed and the class list matching the new value is added. |
mouse-wheel-scroll-size |
float |
このプロパティは、マウスのスクロールホイール使用時にのみ、ページのサイズに基づいてスクロール速度を制御します。これは –unity-metrics-single_line-height USS 変数よりも優先されます。 |
nested-interaction-kind |
UIElements.ScrollView+NestedInteractionKind |
スクロールが、ネストされた ScrollView の限界に達したときに使用する動作です。 |
scroll-deceleration-rate |
float |
ユーザーがタッチ操作でスクロールした後の、スクロールの動きの減速の度合いを制御します。 deceleration rate は 1 秒あたりの速度減少です。値が 0.5 の場合、1 秒ごとに速度が半分になります。値が 0 の場合、スクロールが直ちに停止します。 |
vertical-page-size |
float |
このプロパティは、キーボードまたは画面上のスクロールバーボタン (矢印とハンドル) の使用時に、ページのサイズに基づいて縦スクロールの速度を制御します。 |
vertical-scroller-visibility |
UIElements.ScrollerVisibility |
縦スクロールバーを表示するかどうか指定します。 |
この要素は基本クラスから以下の属性を継承します。
名前 | 型 | 説明 |
---|---|---|
focusable |
boolean |
要素がフォーカス可能である場合は true。 |
tabindex |
int |
フォーカスリング内でフォーカス可能なものをソートするために使用される整数。0 以上であることが必要です。 |
この要素は、VisualElement
から以下の属性も継承します。
名前 | 型 | 説明 |
---|---|---|
content-container |
string |
子要素はそれに追加されますが、通常は要素自体と同じです。 |
name |
string |
この VisualElement の名前。 このプロパティを使用して、特定の要素を対象とする USS セレクターを記述します。要素には一意の名前を付けるのが標準的です。 |
picking-mode |
UIElements.PickingMode |
mouseEvents または IPanel.Pick クエリの間にこの要素を選択 (ピック) できるかどうかを決定します。 |
style |
string |
この要素のスタイルオブジェクトへの参照。 C# でこのオブジェクトに書き込まれた USS ファイルまたはインラインスタイルから計算されたデータが含まれます。 |
toolbar |
string |
ユーザーが要素をマウスオーバーした後、わずかな時間、情報ボックス内に表示するテキスト。これはエディター UI でのみサポートされます。 |
usage-hints |
UIElements.UsageHints |
VisualElement の高レベルの使用パターンを指定するヒント値の組み合わせ。このプロパティは、VisualElement がまだ Panel の一部でない場合にのみ設定できます。Panel の一部になると、このプロパティは事実上読み取り専用となり、変更しようとすると例外がスローされます。適切な UsageHints を指定することで、予想される使用パターンに基づいて、特定の操作をどのように処理するか、または高速化するかについて、システムがより適切な判断を下すようになります。これらのヒントは動作や視覚的な結果には影響しませんが、パネルとその中の要素の全体的なパフォーマンスにのみ影響することに注意してください。常に適切なUsageHints を指定することを考慮することをお勧めしますが、特定の条件下 (例えば、ターゲットプラットフォームのハードウェア制限など) では、いくつかの UsageHints が内部的に無視される可能性があることに留意してください。 |
view-data-key |
string |
ビューデータの永続性 (ツリーの展開状態、スクロール位置、ズームレベルなど) に使用されます。 これは、ビューデータストアからビューデータを保存/ロードするために使用されるキーです。このキーを設定しないと、この VisualElement の永続性が無効になります。 |
以下の表は、すべての C# パブリックプロパティ名と、それに関連する USS セレクターのリストです。
C# プロパティ | USS セレクター | 説明 |
---|---|---|
ussClassName |
.unity-scroll-view |
この型の要素の USS クラス名。 |
viewportUssClassName |
.unity-scroll-view__content-viewport |
この型の要素のビューポート要素の USS クラス名。 |
horizontalVariantViewportUssClassName |
.unity-scroll-view__content-viewport--horizontal |
Viewport が Horizontal モードの場合に追加される USS クラス名。ScrollViewMode.Horizontal
|
verticalVariantViewportUssClassName |
.unity-scroll-view__content-viewport--vertical |
Viewport が Vertical モードの場合に追加される USS クラス名。ScrollViewMode.Vertical
|
verticalHorizontalVariantViewportUssClassName |
.unity-scroll-view__content-viewport--vertical-horizontal |
Viewport が Horizontal と Vertical 両方のモードの場合に追加される USS クラス名。ScrollViewMode.VerticalAndHorizontal
|
contentAndVerticalScrollUssClassName |
.unity-scroll-view__content-and-vertical-scroll-container |
この型の要素内のコンテンツ要素の USS クラス名。 |
contentUssClassName |
.unity-scroll-view__content-container |
この型の要素内のコンテンツ要素の USS クラス名。 |
horizontalVariantContentUssClassName |
.unity-scroll-view__content-container--horizontal |
ContentContainer が Horizontal モードの時に追加される USS クラス名。ScrollViewMode.Horizontal
|
verticalVariantContentUssClassName |
.unity-scroll-view__content-container--vertical |
ContentContainer が Vertical モードの時に追加される USS クラス名。ScrollViewMode.Vertical
|
verticalHorizontalVariantContentUssClassName |
.unity-scroll-view__content-container--vertical-horizontal |
ContentContainer が Horizontal と Vertical 両方のモードの時に追加される USS クラス名。ScrollViewMode.VerticalAndHorizontal
|
hScrollerUssClassName |
.unity-scroll-view__horizontal-scroller |
この型の要素の横スクロールバーの USS クラス名。 |
vScrollerUssClassName |
.unity-scroll-view__vertical-scroller |
このタイプの要素の縦スクロールバーの USS クラス名。 |
horizontalVariantUssClassName |
.unity-scroll-view--horizontal |
ScrollView が Horizontal モードの時に追加される USS クラス名。ScrollViewMode.Horizontal
|
verticalVariantUssClassName |
.unity-scroll-view--vertical |
ScrollView が Vertical モードの時に追加される USS クラス名。ScrollViewMode.Vertical
|
verticalHorizontalVariantUssClassName |
.unity-scroll-view--vertical-horizontal |
ScrollView が Horizontal と Vertical 両方のモードの時に追加される USS クラス名。ScrollViewMode.VerticalAndHorizontal
|
scrollVariantUssClassName |
.unity-scroll-view--scroll |
|
disabledUssClassName |
.unity-disabled |
ローカルで無効にされた要素の USS クラス名。 |
また、Inspector や UI Toolkit Debugger の Matching Selectors セクション を使用して、どの USS セレクターが VisualElement
のコンポーネントに影響するかを、階層のすべてのレベルで確認することもできます。