Version: Unity 6.0 (6000.0)
言語 : 日本語
RenderingLayerMaskField
Scroller

スクロールビュー

ScrollView は、スクロール可能な領域内にコンテンツを表示します。コンテンツを ScrollView に追加すると、コンテンツは ScrollView のコンテンツコンテナ (#unity-content-container) に追加されます。

ScrollView の作成

ScrollView は、UI Builder、UXML、または C# で作成できます。以下の C# の例では、タイトルラベルといくつかの Toggle 要素を含む、水平と垂直の両方のスクロール機能を備えた ScrollView を作成します。

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で以下のオプションのいずれかを選択します。

  • 自動 (デフォルト)
  • 常に表示
  • 隠れオブジェクト

スクロールスピードのコントロール

スクロールスピードをコントロールするには、UI Builder、UXML、または C# コードで以下のプロパティの値を調整します。値が高いほどスクロールスピードが速くなります。

  • horizontal-page-size は、 キーボードまたは画面上のスクロールバーボタン (矢印とハンドル) を使用するときの水平スクロールのスピードを制御します。スピードは、ページサイズに指定した値を乗算して計算されます。例えば、2 の値は、各スクロール移動がページ幅の 2 倍の距離をカバーすることを表します。
  • vertical-page-size は、キーボードまたは画面上のスクロールバーボタン (矢印とハンドル) を使用するときの垂直スクロールのスピードを制御します。スピードは、ページサイズに指定した値を乗算して計算されます。例えば、2 の値は、各スクロール移動がページの長さの 2 倍の距離をカバーすることを表します。
  • mouse-wheel-scroll-size は、マウスホイール使用時のスクロールスピードを制御します。スピードは、指定された値を 18px のデフォルトの行の高さに対応する 18 で除算して計算されます。例えば、値を 36 に設定すると、各スクロール移動は 2 行のコンテンツに相当する距離になります。

ノート: USS ビルトイン変数 –unity-metrics-single_line-height をオーバーライドして、マウスホイール使用時のスクロールのスピードをコントロールできます。mouse-wheel-scroll-size 属性は、–unity-metrics-single_line-height USS 変数よりも優先されます。

ScrollView 内で要素をラップする

ScrollView 内でビジュアル要素をラップして、要素が行に表示されるようにすることができます。行にあくスペースがない場合、要素は次の行に引き続き表示されます。

ScrollView 内でビジュアル要素をラップするには、ScrollView のコンテンツのコンテナ flex-directionrow に、flex-wrapwrap に設定します。

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 内の要素のテキストをラップする

ScrollView 内でラベル要素のテキストなど、要素のテキストをラップするには、以下のことを行います。

  1. 以下のいずれかの方法でラベル要素のスタイルを設定します。
    • UI Builder のラベルの Inspector ウィンドウで、Text > Wrap > normal を選択します。
    • USS、UXML、または C# でラベル要素にスタイル white-space: normal; を適用します。
  2. VisualElement を ScrollView 内のコンテナとして作成します。ScrollView 内の元のコンテナ要素には境界が設定されていないため (サイズは無限)、テキストは適切にラップされません。このコンテナ VisualElement は、テキストをラップするための有限のサイズを指定します。
  3. VisualElement コンテナにラベルを追加します。

C# クラスと名前空間

C# クラス: ScrollView
名前空間: UnityEngine.UIElements
基本クラス: VisualElement

メンバー UXML 属性

この要素は以下のメンバー属性を持ちます。

名前 説明
elastic-animation-interval-ms long 弾性バネアニメーションを実行する間隔の最小時間 (ミリ秒)。
elasticity float ユーザーがスクロールビューの境界を超えてスクロールしようとするときに使用される弾性の量。

弾性は、touchScrollBehavior が Elastic に設定されている場合にのみ使用されます。
horizontal-page-size float このプロパティは、キーボードまたは画面上のスクロールバーボタン (矢印とハンドル) を使用するときの水平スクロールのスピードを、ページのサイズに基づいて制御します。

スクロールする場合、ページサイズは各スクロールステップのオフセットに適用されるため、最終的なオフセットはページサイズにステップ数を乗算した値になります。SA: BaseSlider_1::ref::pageSize。
horizontal-scroller-visibility UIElements.ScrollerVisibility 水平スクロールバーを表示するかどうかを指定します。
mode UIElements.ScrollViewMode ScrollView でユーザーがコンテンツをスクロールする方法を制御します。ScrollViewMode デフォルトは ScrollViewMode.Vertical です。このプロパティに書き込むと、指定された ScrollViewMode の値に従って ScrollView のクラスリストが変更されます。値が変更されると、古い値に一致するクラスリストが削除され、新しい値に一致するクラスリストが追加されます。
mouse-wheel-scroll-size float このプロパティは、ページのサイズに基づいて、マウスのスクロールホイールを使用する場合にのみスクロールスピードを制御します。–unity-metrics-single_line-height USS 変数よりも優先されます。
nested-interaction-kind UIElements.ScrollView+NestedInteractionKind スクロールがネストされた ScrollView の上限に達したときの動作。
scroll-deceleration-rate float ユーザーがタッチインタラクションを使用してスクロールした後にスクロールの動きが遅くなる割合を制御します。

減速率は、1 秒あたりのスピードの減少率です。
0.5 で毎秒のスピードが半分になります。値が 0 の場合、スクロールは直ちに停止します。
vertical-page-size float このプロパティは、キーボードまたは画面上のスクロールバーボタン (矢印とハンドル) を使用するときの垂直スクロールのスピードを、ページのサイズに基づいて制御します。

スピードは、ページサイズに指定した値を乗算して計算されます。例えば、2 の値は、各スクロール移動がページ幅の 2 倍の距離をカバーすることを表します。
vertical-scroller-visibility UIElements.ScrollerVisibility 垂直スクロールバーを表示するかどうかを指定します。

継承された UXML 属性

この要素は基本クラスから以下の属性を継承します。

名前 説明
focusable boolean 要素がフォーカス可能である場合は true。
tabindex int フォーカスリング内のフォーカス可能な要素をソートするために使用される整数。0 以上の値に設定する必要があります。

この要素は VisualElement から以下の属性も継承します。

名前 説明
content-container string 子要素が追加されますが、通常は子要素は要素自体と同じです。
data-source Object 継承されたデータソースをオーバーライドするこの VisualElement にデータソースを割り当てます。このデータソースはすべての子に継承されます。
data-source-path string データソースから値へのパス。
data-source-type System.Type この VisualElement に割り当て可能なデータソースのタイプ。

この情報は、設計時に有効なデータソースを指定できない場合に、データソースパスフィールドを補完するヒントとして UI Builder でのみ使用されます。
language-direction UIElements.LanguageDirection 要素のテキストの向きを示します。値は要素の子に伝播されます。

languageDirection を RTL に設定すると、テキストの反転と改行/折り返しの適切な処理による、右から左へ (RTL) の基本サポートが追加されます。ただし、包括的な RTL サポートは提供されません。これには、文字の並べ替えを含むテキストシェーピングと OpenType フォント機能のサポートが必要になるためです。将来のアップデートでは、言語、スクリプト、フォント機能の仕様を処理するための追加の API を含む、包括的な RTL サポートが予定されています。

このプロパティの RTL 機能を拡張するには、Unity Asset Store で入手可能なサードパーティ製のプラグインを探し、ITextElementExperimentalFeatures.renderedText を利用してください。
name string この VisualElement の名前。

このプロパティを使用して、特定の要素を対象とする USS セレクターを記述します。要素には一意の名前を付けるのが標準的です。
picking-mode UIElements.PickingMode mouseEvent または IPanel.Pick クエリの間にこの要素を選択 (ピック) できるかどうかを決定します。
style string VisualElement スタイルの値を設定します。
tooltip string ユーザーが要素をマウスオーバーした後、わずかな時間、情報ボックス内に表示するテキスト。これはエディター UI でのみサポートされます。
usage-hints UIElements.UsageHints VisualElement の意図されているハイレベルな使用パターンの概要を指定するヒント値の組み合わせ。このプロパティは、VisualElement がまだ Panel の一部でない場合にのみ設定できます。Panel の一部になると、このプロパティは事実上読み取り専用となり、変更しようとすると例外がスローされます。適切な UsageHints を指定することで、予想される使用パターンに基づいて、特定の操作をどのように処理するか、または高速化するかについて、システムがより適切な判断を下すようになります。これらのヒントは動作や視覚的な結果には影響しませんが、パネルとその中の要素の全体的なパフォーマンスにのみ影響することに注意してください。常に適切な UsageHints を指定することを考慮するようお勧めしますが、特定の条件下 (例: ターゲットプラットフォームのハードウェア制限) では、一部の UsageHints が内部的に無視される可能性があることに留意してください。
view-data-key string ビューデータの永続性 (ツリーの展開状態、スクロール位置、ズームレベルなど) に使用されます。

このキーは、ビューデータストアからビューデータを保存およびロードするために使用されます。このキーを設定しないと、関連する VisualElement の永続性が無効になります。詳細については、ビューデータの永続性を参照してください。

USS クラス

以下の表は、すべての C# パブリックプロパティ名と、それに関連する USS セレクターのリストです。

C# プロパティ USS セレクター 説明
ussClassName .unity-scroll-view この型の要素の USS クラス名。
viewportUssClassName .unity-scroll-view__content-viewport この型の要素の Viewport 要素の USS クラス名。
horizontalVariantViewportUssClassName .unity-scroll-view__content-viewport--horizontal Viewport が水平モードのときに追加される USS クラス名。ScrollViewMode.Horizontal
verticalVariantViewportUssClassName .unity-scroll-view__content-viewport--vertical Viewport が垂直モードのときに追加される USS クラス名。ScrollViewMode.Vertical
verticalHorizontalVariantViewportUssClassName .unity-scroll-view__content-viewport--vertical-horizontal Viewport が水平モードと垂直モードの両方の場合に追加される 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 が水平モードのときに追加される USS クラス名。ScrollViewMode.Horizontal
verticalVariantContentUssClassName .unity-scroll-view__content-container--vertical ContentContainer が垂直モードのときに追加される USS クラス名。ScrollViewMode.Vertical
verticalHorizontalVariantContentUssClassName .unity-scroll-view__content-container--vertical-horizontal ContentContainer が水平モードと垂直モードの両方の場合に追加される USS クラス名。ScrollViewMode.VerticalAndHorizontal
hScrollerUssClassName .unity-scroll-view__horizontal-scroller この型の要素の水平スクローラーの USS クラス名。
vScrollerUssClassName .unity-scroll-view__vertical-scroller この型の要素の垂直スクローラーの USS クラス名。
horizontalVariantUssClassName .unity-scroll-view--horizontal ScrollView が水平モードのときに追加される USS クラス名。ScrollViewMode.Horizontal
verticalVariantUssClassName .unity-scroll-view--vertical ScrollView が垂直モードのときに追加される USS クラス名。ScrollViewMode.Vertical
verticalHorizontalVariantUssClassName .unity-scroll-view--vertical-horizontal ScrollView が水平モードと垂直モードの両方の場合に追加される USS クラス名。ScrollViewMode.VerticalAndHorizontal
scrollVariantUssClassName .unity-scroll-view--scroll
disabledUssClassName .unity-disabled ローカルで無効に設定されている要素の USS クラス名。

Inspector または UI Toolkit Debugger の Matching Selectors セクション を使用して、階層のすべてのレベルで VisualElement のコンポーネントに影響する USS セレクターを確認することもできます。

追加リソース

RenderingLayerMaskField
Scroller