読者です 読者をやめる 読者になる 読者になる

196の日記

完全に開発メモと雑談、その他忘れそうな計算式などを書き溜める場所になっています!

Unity ScrollViewをフリックで操作する

タイトル通りです。

フリックを検知する

こちらのサイトさんが参考になりました。

Unityでフリック入力 - Qiita

改良した点は、フリックの方向もわかるようにしたこと。といっても、それほどいじったわけではなく、タッチの始まり点と終わり点のx座標の差をとって、方向を調べているだけです。後はそれに準じて、別のメソッドを呼んであげたりすることで、方向もしっかりと検知することができました。何よりしっかりとしたスクリプトを載せていただけていたのですごく勉強になりました。


ScrollViewをフリックで動かす

 ScrollViewを使用する必要はないです。僕はScrollVewを作成した後、改良しようとして今に至っているので 使っているだけです。ScrollViewを使用しない場合は、コンポーネントを綺麗に横(縦)に並べて、それをフリックによって左右に移動させてやればOKです。(iTweenが良いよ)

まず、ScrollView固有のスクロール機能を切ってしまいます。ここの2つのチェックw外せばOK
f:id:thinline196:20170108202259p:plain


こうすることで、コンポーネントをContentの中に詰めたとしても、それが移動することはありません。
後は、先ほど作成したフリック検知スクリプトより、移動メソッドを読んであげればOK



nowPanelは現在表示中のパネルを記憶し、端のパネルがさらにスクロールしそうになったらreturnする為に使用します。後は、パネル間の距離を算出し、その分だけ全てをiTweenで移動させてやります。これで、フリックに対応したScrollViewができます。







結論を言うと、なんらかの方法でパネルを縦か横に並べ、それをフリック検知により移動させてあげれば、操作できているような感覚になります。