uGUIオブジェクトをタッチしてズリズリと(ドラッグ&ドロップ)で移動させる

 ボタンやら画像などをオブジェクトを自由な場所に移動させたいときがある。ドラッグのことね。

1)インスペクターにEventTriggerを追加
2)EventTriggerにDragを追加

 ここまでやったら、あとは(2)で追加したEventTriggerのDragにコードに書いたイベントをアタッチすればよい。
 ドラッグしたら呼ばれるイベントを作ると言う事ね。以下、そのイベント内の解説。

 まず以下のように親のオブジェクト情報を取得しておこう。親のオブジェクト(OyaPanel)内に自分自身のオブジェクトがいるていで。

タッチ位置の取得したいとき。

でとれるっぽい。だもんで以下のようにすれば TapPosにタッチしたとこの座標がはいる。

 あとは取得したTapPosにX座標とY座標はいってるから、それをつかって自分自身オブジェクトを移動させる。

 ちなみに、親のRectTransform状態でなんか計算が変わる?今回は「親のサイズを2で割ったものを加える」的なことをしてる。じゃないと変な位置に吹っ飛んでしまう。

 勘だけど親オブジェクトのRectTransformの設定によっては「親のサイズを2で割ったものを加える」的なことをしなくてよいかもね。
 この辺は、よくわからんかった。

 単純に座標いれるだけで解決したらわかりやすくていいのにさぁ。なんかタッチ座標はワールド座標だかららしいよ、よくわからんけども。