nirasan's tech blog

趣味や仕事の覚え書きです。Linux, Perl, PHP, Ruby, Javascript, Android, Cocos2d-x, Unity などに興味があります。

NGUI の ScrollView で気持ちのいいスクロールを実装する

気持ちが良いスクロールとは?

  • 今回は「ちょっとスワイプするだけで次の要素にスッと切り替わる」ものを実装する。

バージョン情報

  • Unity 4.6.1f
  • NGUI 3.7.6

ヒエラルキー

UI Root
	ScrollView
		Grid

ScrollView の作成

  • メニューの [NGUI] > [Create] > [Scroll View] で作成

Grid の作成

  • メニューの [NGUI] > [Create] > [Grid] で作成
  • UICenterOnChild をアタッチ

オプション設定

  • UIGrid の Sorting を None 以外にする
    • わからなければ Custom にする
  • UICenterOnChild の NextPageThreshold を 1 にする

動作確認

  • Grid 配下に任意の UIDragScrollView とコライダーがアタッチされたオブジェクトを追加して動作を確認する。

解説

  • UICenterOnChild.NextPageThreshold が 0 より大きく、UIGrid の Sorting が None 以外である時、スワイプした距離が NextPageThreshold より大きければ UICenterOnChild により次あるいは前の要素に切り替わる。

注意点

  • ScrollView をループさせるスクリプトの UIWrapContent が有効であると、この処理は正常に行われなかった。