おれ、Unity2Dでゲーム作るんだ。

Unity2Dをメインに、覚書などを記事にしていきます。

Unity - NGUIで回転してループするようなメニューを作る

iPhoneの時間入力の様なグルグル回ってループする入力を作ってみたいと思ったので覚書です。 まずは、入力メニュー部。

ざっとしたNGUI階層

最終的にはこんな階層になります。 UI Root
 Scroll View
  UIWarp Content
   Label
   Label
   Label
f:id:xev:20150518140559p:plain

そして、Label自体をドラッグしてぐりぐり回す想定です。

まず、UI RootにScroll Viewを乗せる

NGUI->Create->Scroll View f:id:xev:20150518140652p:plain

縦もしくは横に回転させたいかどうかは、[movement]で方向を設定。 f:id:xev:20150518141247p:plain

UIWrap Contentコンポーネントをアタッチ

まずは、スクロールビューに空のGameObjectを乗せ、

f:id:xev:20150518140624p:plain

空のGameObjectにアタッチするコンポーネントは、

  • UIWrap Content - レイアウトも含めループするメニューを作ってくれる
  • UICenter On Child - スクロールさせたときに、ぴったり位置を合わせてくれる

f:id:xev:20150518140717p:plain

メニュー自体の並びの幅を[UIWrap Content]->[Item Width]で指定。

です。

表示させるラベルを作成

上記で作成したモノに、適当にLabelなどを作ります。 で、そのLabel達にアタッチするものが以下。

  • UIDrag Scroll View
  • Collider

f:id:xev:20150518140844p:plain

これでドラッグできるようになります。
ひとまず、表示部分はこんな感じ。 f:id:xev:20150520012928j:plain

あとは、スクリプトで中央に配置されているオブジェクトを取得すればOK
※UICenterOnChildのOnCenterを利用してラベルを取得するような感じですかね。  
時間があれば、選択した文字を取得する部分にチャレンジしたいと思います。