Picker

このページではVerticalPickerを例にPickerの構造を説明します.
このPickerはメニューの [GameObject]/[UI]/[Picker]/[Vertical Picker]をクリックすることで追加できます.
VerticalPicker,HorizontalPickerは同様の構造を持っています.

VerticalPicker

ルートオブジェクトです. コンポーネントはアタッチされていません.

../_images/picker1.png

Glass,Frame

周囲の枠や中央のガラスです.
Imageコンポーネントの代わりにDontTouchImageコンポーネントがアタッチされています.
もしアイテムの上に何かを表示するなら(例えばGlass)GUIのレイキャストを阻害しないためにImageコンポーネントの代わりにDontTouchImageを使ってください.
DontTouchImageはレイキャストをスルーします. これによりDontTouchImageの後ろのアイテム(下記の画像ではItem1)をタップすることができます.
../_images/picker3.png

ColumnList

カラムのリストです. 下記の役割があります.

  • カラムを配置可能な領域を定義する

  • 複数のカラムのレイアウトを決める. (VerticalPickerではHorizontalLayoutGroupがアタッチされています. )

../_images/picker2.png

Column

カラムの本体です. 複数のカラムを配置する場合はこのオブジェクトを複製(Ctrl+D)してください.
PickerScrollRectコンポーネントがアタッチされています. Pickerの基本的な設定はこのコンポーネント上にあります.
インスペクターの最上部の Content はスクロール対象のオブジェクトです. アサインが必要です.
../_images/picker4.png

PickerScrollRectの設定項目

Note

インスペクター上のパラメータの挙動は下記のデモで確認可能です.
Assets/PickerForUGUI/Demo/ParameterDemo.unity
../_images/picker5.png

項目

説明

Content

スクロール対象のオブジェクトです. アサインが必要です.

Layout

スクロールの方向です.

MovementType

コンテンツがスクロール矩形を越えて移動する際の挙動です.
Infinite : 無限にループします.
Elastic : 弾力があるように振舞います.
Clamped : 停止します.

Inertia

ドラッグ後に動きを持続するかどうか.

Deceleration Rate

移動速度の減速割合です. 0.5で毎秒速度を半分にします.

Slip Velocity Rate

速度がこの割合を下回った場合にスリップを停止し最寄のアイテムにスクロールします.

Scroll Sensitivity

スクロールの感度です.

Scroll Sec From Click

アイテムをタップしたときに、そのアイテムにスクロールするためにかかる時間です.

Wheel Effect

ホイール上にアイテムを配置したような視覚効果を再現します. Column中央からの距離に応じてアイテムのサイズを縮めます.

Initial Scroll Position

スクロールの初期位置を設定します.

Horizontal Scrollbar

水平方向のスクロールに紐付いたScrollbarオブジェクト.

Vertical Scrollbar

垂直方向のスクロールに紐付いたScrollbar オブジェクト.

When To Send Events

イベントの送信タイミング.
Always : アイテムが変更される度に常にOnSelectItemイベントを送信します.
Only Scroll Stops : アイテムが変更され、かつスクロールが停止したときにのみOnSelectItemイベントを送信します.

On Select Item ( GameObject )

選択されたアイテムが変更されたときに呼ばれるイベントです. 引数のGameObjectは選択されたアイテムです.

On Scroll Changed ( Vector2 )

スクロール位置が変化したときに呼ばれるイベントです.

Content

スクロールとアイテムのレイアウト管理のためのオブジェクトです.
PickerLayoutGroupコンポーネントがアタッチされています. ContentにはPickerLayoutGroupコンポーネントのアタッチが必要です.
このオブジェクトの子供にアイテムを格納します.
../_images/picker6.png

Item0/Item1/Item2

アイテムの本体です. PickerItemコンポーネント(あるいはそれを継承したクラス)のアタッチが必要です.
それ以外の制限はありません.
OnSelectItemで送信されるGameObjectはこのオブジェクトです.
../_images/picker7.png