アイテム(フルーツ)の落下を実装する【Unity】

Unityちゃんが動くようになったところで、フルーツが落下するようにします。

割とフルーツの種類が豊富だったので、いきなり全種類ではなく最初は少ない種類で試してみます。

スポンサーリンク

フルーツの配置とスクリプトの作成

まずは、シーンビューにフルーツを配置しましょう。

種類は何でも構いませんが、フルーツの王道「りんご」を配置したいと思います。

シーンビューにりんごを配置する

「Fruits_Pack -3D_Models」→「Prefabs」の中にある「FP_apple」をシーンビューにドラッグ&ドロップします。

上の画像のりんごはScaleの値を全て「10」にしています。配置した時点では全て「1」になっていて米粒のように小さいです。

また、「FP_apple_half」はりんごを半分の状態にしたグラフィックになっています。

得点を半減するなど、レベルデザインとして使えそうな予感がします。

りんごを落下させるスクリプト

今用意したりんごを落下させるスクリプトを作ります。

C#Scriptから「FruitController」等で作成してスクリプトを開きましょう。

りんごを落下させるスクリプト

私はこんなスクリプトを作成しました。

Translateメソッドを使い、yの引数に「-Time.deltaTime」を記述することで、毎フレーム少しずつ下方向に移動させています。現段階では下方向の動きのみなので、xとyはそれぞれ「0」にしてます。

float変数でマイナスの値を宣言して、それを使っても良いと思います。

フルーツの破棄は、ステージよりも下に行き見えなくなった時点で破棄するようにしています。

作成したらスクリプトを保存して、りんごにアタッチします。

ゲームを実行してりんごの動きを確認。

リンゴが落下するアニメーション

こんな調子でTime.deltaTimeが丁度いい落下スピードになってるんですよね。

遅くもなく速くもなくと言った感じで、初心者設計になってると思います。

一応、ヒエラルキーウィンドウで、ステージの下にりんごが行くと破棄されるのかもチェックしておきましょう。