MawaLog

一日一日、楽しく生きる。技術と音楽が好き。

開発日誌: Unity::アドベンチャー3Dゲーム開発vol.6::回復アイテム実装

f:id:k_mawa:20180201114148j:plain

コメント

回復アイテムです。ロックマンのE缶のイメージですね。それよりさらに手軽な実装です。

手順1:設定検討と素材インポート

とりあえず設定を考えました。ライフゲージみたいなものを今回は作っていないので、タイマーの余裕ができるみたいな機能なら実装が速そうと思い、その方向で回復アイテム実装しました。

f:id:k_mawa:20180201225554j:plain 天ぷらとお寿司はフリーのものをダウンロードしました。 これです。テストプロジェクトということであんまり考えずぽんと和っぽいものを置きました。

FREE Food Pack - Asset Store

手順2:天ぷら・寿司プレファブを設置

いつものようにドラッグアンドドロップでです。 タグ付けしておきましょう。天ぷらには"Tempura"、すしには"Sushi"でいいでしょう。

手順3:C#スクリプト実装

ポイント取得時の実装にかなり似ています。以下です。

socorecontroll.cs

public static float Timer_sec = 120.0f;

タイマーの時間が120秒に設定されていることを確認します。このstaticをつけとかないと他のスクリプトで参照できなかったので、つけとくのが吉だと思われます。(自分の場合。多分変数を格納したメモリの記憶位置が定位置に定まるので、staticなんだと思いますが、正確なところは専門書で確認いただくのが良いと思います。とりあえずこれで動きました。)

collision.cs

public class collision : MonoBehaviour {
    //scorecontrollのC#スクリプトをインポート
    public scorecontroll scorecontroll;

    void OnCollisionEnter(Collision other)
    {
               

                if (other.gameObject.tag == "Sushi") //tag=Sushiの場合は
                {
                    scorecontroll.Timer_sec += 60;  //60秒タイマーにプラス

                    Destroy(other.gameObject); //ぶつかったオブジェクトを消す(消さないと回復の泉みたいになりますね)
                }

                if (other.gameObject.tag == "Tempura") //tag=Tempuraの場合は
                {
                    scorecontroll.Timer_sec += 30; //30秒タイマーにプラス

                    Destroy(other.gameObject); //ぶつかったオブジェクトを消す(消さないと回復の泉みたいになりますね)
                }
       }            
}

手順4:完成

あとは天ぷらと寿司を好きな場所に配置すれば完成です。