開発メモ[Unity]:ドラッグ&ピンチイン・ピンチアウトの入力コントロール先日リリースした「まちがい探し3D」では、少し特殊な入力インターフェースを利用しています。アプリスコア.comドラッグで視点の移動ピンチイン・ピンチアウトで視点の縮小・拡大タップでオブジェクトの選択これらの入力をコントロールするためのスクリプトを公開します。タップ時の処理を記述}}若干、難解なコードになってしまっていますが、元々ドラッグのみを実現するスクリプトにタップとピンチイン・ピンチアウトを無理くり付け足したため、このような状態になってしまいました。OnGUI()を使わずにUpdate()でまとめて書き直した方がスッキリするでしょう。画面にタッチされた時に触れた点が2カ所ならピンチイン・アウトの開始として、その2点間の距離をintervalに保持しておくと同時にisPinchedフラグを立てておきます。このisPinchedフラグは、指が離れる時に指1本だけが残り不正なドラッグ・タップが起こらないよう判定するためのもので、タッチが検出されなくなると寝かせるようにしています。ピンチイン・アウト中は前回のintervalと比較計算しズームイン・アウトの処理を行います。EventType.MouseDragによりドラッグ中であると判定されたらisDraggingとisDraggedフラグを立てます。isDraggingフラグが立っている場合には回転の処理を行います。angle_yに初期位置での向きを保持しており、ドラッグによりangle_*を変更し、その角度に基づき位置を計算します。原点を中心に回転し、常に原点の方を向く事になります。指が離れた場合にはisDraggedフラグが寝ていればタップの処理を行います。タップに関しては指が離れた時点での処理ということになりますが、ドラッグも実現するために選択の余地はありませんでした。キャンセル投稿を送信できませんでした。メールアドレスを確認してください。メール送信チェックに失敗しました。このブログではメールでの投稿共有はできません。