【Unity2D】ゲームオブジェクトを高速でドラッグ&ドロップしても指に追従させる方法
どうも、だらはです。
今回は、ゲームオブジェクトを高速でドラッグ&ドロップしても指に追従させる方法を紹介したいと思います。本記事は、以前書いたスクリプトの改良版となります。
◆以前書いたスクリプト
考え方とスクリプト
以前書いたスクリプトは、RaycastHit2Dで検出したゲームオブジェクトの座標をUpdate()にて毎タスク更新する方法をとっていました。
今回は、RaycastHit2Dで検出したゲームオブジェクトをListに追加し、Listに追加されたゲームオブジェクトの座標をUpdate()にて毎タスク更新する方法をとっています。
◆スクリプト
補足①
今回はRayに当たった全てのゲームオブジェクトを検出できるように修正しました。(以前のは1つのオブジェクトのみ検出していた)
補足②
今回は、同時に5タッチまで検出できる仕様としています。
補足③
今回は、他オブジェクトの変数を書き換える方法としてイベントを利用しています。
こちらの記事の下の方に概要を記載しましたのでご参照頂けたらと思います。
【Unity】シーン遷移時のOnDestroy処理でエラーとなる現象の対策
補足④
Input.touchesは、タッチを検出することができますが、複数タッチすると、取得される配列のインデックスがころころ変わるため指の識別ができません。
なので、今回はTouch.fingerIdを使っています。
まとめ
いかがでしたでしょうか。
高速スワイプに対応する手段として、今回はListを使った方法を紹介しました。
本件とは関係ないのですが、ブログ記事として記事をまとめるときに、htmlの仕様で<>で囲まれた部分が削除されてしまうことが分かりました。
何とか手動で修正していますが、漏れてしまった部分はエラーとなってしまうためコメントで連絡いただけると助かります。。
以上、だらはでした。
ディスカッション
コメント一覧
まだ、コメントがありません