-
Scroll Rect という UI 要素は
-
様々な UI 要素をユーザーが移動させる時に使うもので
-
水平/垂直に動かすことが出来ます
-
表示するものは大きな画像や
-
様々な UI 要素のパネルです よくある用途としては
-
複数のボタン、量の多い文章などです。
-
scroll rect は多くの場合
-
mask 要素と組み合わせて使用されるので
-
スクロールバーともシームレスに機能するよう設計されています
-
このレッスンでもマスクとスクロールバーについて多少紹介しますが
-
基本的な機能しか紹介しません
-
マスクやスクロールバーの詳細については
-
下記リンク先の情報を参照してください
-
scroll rect を作成するには
-
まず Canvas の子ゲームオブジェクトに
-
Scroll Rect コンポーネントをアタッチします
-
scroll rect 要素も他の UI 要素と同様に
-
Canvas の子にする必要があります
-
ゲームオブジェクトに Scroll Rect コンポーネントをアタッチするには
-
Add Component を使います
-
UI
-
Scroll Rect
-
ここではゲームオブジェクト名を
-
Scroll View と変更します
-
Content(コンテンツ)は scroll rect に制御されている
-
UI 要素の RectTransform への参照です
-
たとえばここに scroll rect よりも
-
はるかに大きな画像があります
-
次にコンテンツを... ここでは
-
大きな画像を
-
scroll rect の Content プロパティに関連付けてみます
-
するとプレイモードで コンテンツがスクロール可能になりました
-
さて通常 scroll rect は mask 要素と組み合わせて使用されます
-
mask 要素と scroll rect を組み合わせて使うには
-
まずゲームオブジェクトにマスク用の
-
Image スクリプトを追加します
-
その後に Mask スクリプトを追加します
-
mask 要素はマスクの作成時に
-
画像を使います
-
image スクリプトに画像を指定するのは必須ではありませんが
-
必要に応じて指定もすることで
-
マスクの形状を制御することができます
-
image および mask 要素の詳細については
-
下記リンク先の情報を参照してください
-
Horizontal(水平) / Vertical(垂直)はスクロールの
-
方向を指定します
-
いずれかの方向へのスクロールを無効化する場合は
-
対応する軸のチェックボックスをオフにします
-
Movement Type(移動タイプ)はスクロールモードを示します
-
スクロールモードは Movement Type(移動タイプ)の
-
ポップアップメニューで選択できます
-
Unrestricted(制約なし)はスクロール挙動の制約をなくす項目で
-
ふつうは使用することはありません
-
使用した場合 メソッドを追加するなどしないと
-
元に戻れないほどコンテンツを
-
スクロールしてしまいます
-
ただし特定の状況下では
-
大変便利なモードでもあります
-
Movement Type を Elastic(弾性あり)または
-
Clamped(クランプ)に設定すると
-
コンテンツがスクロール可能な軸上で
-
scroll rect の範囲外に出なくなります
-
なお先述の 2 モードで
-
コンテンツをスクロール可能にするには
-
対象コンテンツの RectTransform が
-
scroll rect の RectTransform よりも大きい必要があります
-
コンテンツの RectTransform が
-
scroll rect の RectTransform よりも小さい場合
-
軸に沿ってスクロールができなくなります
-
なお先述の 2 モードを使用する際にはコンテンツを
-
scroll rect の領域内に配置するようにしてください
-
領域外に配置した場合
-
予期しない動作が引き起こされる可能性があります
-
これは RectTransform がコンテンツを
-
領域内に引っ張ろうとするためです
-
Movement Type に Elastic を使うと
-
コンテンツが scroll rect の境界線に到達した時に
-
跳ね返る動作をします
-
この跳ね返りの量は
-
Elasticity(弾性)プロパティで指定します
-
一方で Movement Type に Clamped を使った場合は
-
コンテンツは scroll rect の境界線に到達しても
-
スクロールが停止するだけで跳ね返りません
-
Inertia(慣性)はコンテンツのドラッグを
-
放した時に 慣性ですべる動作を
-
指定する項目です
-
Inertia チェックボックスをオフにすると
-
コンテンツがドラッグ中だけ動くようになります
-
Inertia をオンにすると
-
ドラッグを放した後に
-
スクロールが継続します
-
スクロール継続時間は
-
Deceleration Rate プロパティで制御します
-
Deceleration Rate は 0 にすると
-
スクロールが瞬時に停止し
-
1 にすると永遠に
-
スクロールし続けます
-
Horizontal / Vertical scrollbar は
-
任意指定のプロパティで スクロールバー要素を参照するときに使います
-
scroll rect でスクロールバーを使うには
-
単純に スクロールバーを作成して
-
配置し
-
scroll rect のプロパティと関連付けるだけで
-
OK です
-
これで自動的に動作します
-
スクロールバーとその設定方法については
-
下記リンク先の情報を参照してください