メダルの投入口(サイドアーム)を作りメダルを転がす【Unity3D】

今回は、プッシャーゲームにおいてプレイヤーがどのようにメダルを扱うのかについて考えていきます。結論から言うと、本物に近づけるためにサイドにメダルの投入アームを設置します。

「Quad」を生成してアームのような形にすることで、その上にメダルを転がしましょう。

スポンサーリンク

メダルの投入口(サイドアーム)を作ってメダルを転がそう

メダルの投入口を作る

まずは、左のアームから作ります。Quadを作り「LifetArm」とします。YのScaleを10にすると、縦長になるので左斜めからプッシャーにメダルが転がるように設置します。

左アームが完成したら複製して同じように右アームも作ります。

コインを投入するボタンを作る

次に、両サイドにボタンを用意して、ボタンを押したらメダルを生成するようにしましょう。

メダル投入用のボタンを作る

各ボタンをアームの下に作りました。これ以上下に設置すると、メダルと重なってしまい非常に見栄えが悪くなるので真ん中付近に設置しています。

左のボタンを押したら左のアームから、右だと右のアームからコインを転がすわけです。

各ボタンのテキストは空にしておきます。ボタンはデフォルトのままでもいいですし、画像を準備して適用するなどお任せします。

コインを生成するスクリプトを作成する

新規スクリプト「Shoot」を作成します。

ボタンをクリックしたらメダルを生成するスクリプト

各ボタン用のメソッドを用意して、ボタンがクリックされたらメダルを指定した位置に生成します。

非常にシンプルな内容になっています。positionやrotationは各々異なるはずですので、それぞれメダルの動きをチェックして指定するようにしてください。

とりあえず、試験的にメダルをアームの上に配置して、上手く転がるか確かめるのが良いと思います。良いなと思ったポジションを覚えておきましょう。

クリック連打で連続生成させないようにする

このままだと、クリックする度にメダルが生成され、アーム上でメダル同士の衝突が問題になります。ですから、次のメダルが生成されるまでの間隔を少し開けるように修正します。

メダルを連続生成させないようにする

span変数を作りボタンが押された1秒後は、メダルを生成させないようにします。

メダルがサイドアームを転がる様子

この状態でクリック連打すると・・・。

メダルが転がり始めて新しいメダルが生成できる隙間が出来るタイミングが約1秒後ですので、丁度良い間隔になっています。

これが0.5秒ぐらいだとメダル同士が衝突して不自然な挙動になるので気をつけましょう。

次回は、メダルが落下したときの処理について実装していきます。