- ベストアンサー
Unityのピンボールゲーム製作
Unityでピンボールを作っていて、Android用にビルドしようとしているのですが、 下部にあるフリッパーを 「画面左半分がタッチされたら左のパドル(LeftPaddle)を動かし、画面右半分がタッチされたら右のパドル(RightPaddle)を動かす」といった挙動にしたいのですが、スクリプトの書き方に苦戦しています。 わかる方がいらっしゃいましたら教えていただきたいです。 ちなみにJavaSctiptで書いています。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
どんなスクリプトを書いてるの? それをさらさないと回答は受けにくいじゃろう。 タッチを検知するのみだったら(以下のコードはC#です) void Update () { // ↓マルチタッチ対応のため全タッチを順番に確認する foreach (Touch touch in Input.touches) { switch (touch.phase) { case TouchPhase.Began: // タッチが初めて検知された(タッチダウン) // touch.positionとScreenとか見比べて左右を判定 // 右に2つタッチされたらどうする? break; case TouchPhase.Moved: // ここでタッチダウン→指を動かして左から右へとかやってもいいだろう // touch.fingerIdをキーにタッチダウン時のtouch.positionを覚えておく事で追跡可能 break; case TouchPhase.Ended: // ここでタッチダウン時と同じエリアを指さしていたら // そちらのパドルを動かす動きにすればいい // touch.fingerIdをキーにタッチダウン時のtouch.positionを覚えておく事で追跡可能 break; case TouchPhase.Canceled: // なぞり途中でトラッキング不可能になったとかだと思われる break; } } } みたいな構造でそれぞれの「イベント」を適当に処理すれば余裕のよっちゃんだろう。 同じ指でなぞり続ける限りfingerIdが変わらないのでそれをHashMap的なもので管理すると良かろう。 JavaScriptにHashMapがあるのかは分からんが、C#の場合はHashMapを自作するのは簡単なので合わせて検討されたい。