プッシャーゲームをもっと盛り上げるために、メダルの払い出し機能を実装したいと思います。
プッシャーゲームにメダルの払い出し機能を実装する
メダルの払い出し自体はとても簡単に実装可能です。プッシャーの前後運動する動きを払い出しを行うオブジェクトにも適用すればいいだけですね。
Cubeオブジェクトを払い出し本体にする
まずは、Cubeを作成してプッシャー台の上に配置します。名前を「Pay」等と変更します。
マリオのハテナボックスみたいなもので、ここからメダルを降らせるようにします。
メダルを降らせるスクリプトを作成する
新規スクリプト「Pay」を作ります。
例の如くMathf.Sin関数が活躍します。
今回は、ブロックを横移動させたいのでxの値を変動させます。
メダルは、0.5秒ごとに降らせるようにします。
スクリプトを保存したら、ブロックの移動スピードを指定して、メダルの実体をアウトレット接続してください。
ゲームを実行すると上の動画のように、メダルが払い出されるわけですが・・・。
払い出しスピードを上げてずっと放置しておくと左右のステージ内にメダルが溢れてしまいます。
更に、プレイヤーがメダルを流すためのサイドアームにもメダルが乗ってしまう可能性があります。まぁ、メダルの払い出すスピードを下げる事も1つの解決法なんですが、今回はコライダを使ってメダルが乗らないようにします。
サイドステージやアームにメダルが乗らないようにする
まずは、サイドステージのコライダを上に伸ばしましょう。
対象オブジェクトを選択して「Edit Collider」をクリックします。
後は、コライダを高く伸ばすだけです。同じ作業を逆のステージにも適用してください。
続いてサイドアームに対するコライダですが、空のオブジェクトを作ってBox Colliderをアタッチします。そして、アームを三角形で包むように配置します。
ここまで作業を続けてふと思ったんですが、サイドアーム自身を細めればいいだけでは?メダルが流れるスペースを確保して、不要な部分の幅を狭める方法もアリだと思います。
コライダを作ると、ここにメダルが触れた際にメダルが不自然な動きを起こすでしょうから、ユーザーからすると「何だ今の動きは!?」って事になるかも。
というわけで、急遽作戦変更。
画像のように、アームの幅を細くしました。正直こっちのほうが手っ取り早いです。
ある程度方法はあると思うので好きな手法を使うようにしてください。