Unityでゲーム、アプリ開発

Unityで初めてゲームやアプリを作る人のための支援ブログです。

Unity パーティクルをクリックで出現させて消してみよう。 初心者編18

今回は、パーティクルをマウスの左クリックで
生成して再生が終わったら消える方法を紹介していきたいと思います。

動画での説明の方がいい方は下記動画を参考にしてください。
ブログでの記事での説明がいい方はそのまま読み進めてください。

youtu.be


どうも!ゆうきやんです!!
ゲーム作ってプログラミングしてるなら
それをやってる会社入れば良くね?って思って探したら

面白いのを見つけまして。
みんな酒を持った写真で応募している会社があって
斬新だなって思いました。

まあ薬物にハマりやすいんですよね!笑笑

って事で本題に入っていきましょう!!


パーティクルをクリックで出現させて消してみよう!

f:id:Phoenix9056:20200407095918j:plain

まず、Unityを3Dでプロジェクトを開いていきましょう!


f:id:Phoenix9056:20200409205410p:plain

Hierarchy内にある①の+から3D Object⇨②のPlaneをクリックして作成します。
次に、+⇨Create Emptyをクリックして③のGameObjectを作成して、
Inspectorより名前をClickExploderにします。

次に④のDL_Fantasy_RPGの▶︎をクリックして⑤のPrefabを選択します。
そうしたら⑥のスクリプトProject内の好きな所、今回僕は、
⑤のPrefab内で右クリック⇨Create⇨⑥のC# Scriptから作成して、
名前はClickExploderにします。

次のコードをコピー&ペーストするか同じ記述にしてください。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class ClickExploder : MonoBehaviour
{
    //ParticleSystem型を変数psで宣言します。
    public ParticleSystem ps;
    //GameObject型で変数objを宣言します。
    GameObject obj;
    //マウスでクリックされた位置が格納されます。
    private Vector3 mousePosition;

    
    void Start()
    {
        //FindメソッドでexplodeのGameObjectにアクセスして
        //変数objで参照します。
        obj = GameObject.Find("explode");
        //GetComponentInChildrenで子要素も含めた
        //ParticleSystemにアクセスして変数psで参照します。
        ps = obj.GetComponentInChildren<ParticleSystem>();
        //変数objを非表示にしてパーティクルの再生を止めます。
        obj.SetActive(false);
        ps.Stop();
        
    }

    
    void Update()
    {
        //マウスの左クリックされた時の処理。
        if (Input.GetMouseButtonDown(0))
        {
            //マウスカーソルの位置を取得。
            mousePosition = Input.mousePosition;
            mousePosition.z = 3f;
           Instantiate(ps, Camera.main.ScreenToWorldPoint(mousePosition),
                Quaternion.identity);
            //クリックされた位置にパーティクルを再生します。
            obj.SetActive(true);
            ps.Play();
           
        }
        
    }
}

⑥のスクリプトを、③のClickExploderにドラッグ&ドロップします。
そして⑦のPrefab内にあるexploderを⑧のPsにドラッグ&ドロップします。


f:id:Phoenix9056:20200409212519p:plain

最後に先程スクリプトに追加したProject内の、
①のexploderのInspectorにある
②のStop Actionを、Destroyに変更してください。

この設定をする事でパーティクルの再生が終わった時に
削除されます。

再生してみましょう!

f:id:Phoenix9056:20200409215753g:plain

上手くいったでしょうか??

ご視聴ありがとうございました!!

※初心者に向けた記事のカテゴリは下記リンクを参考にしてください。
www.unityprogram.info

一番上にあるカテゴリにも、学習、ゲーム作り、アセットの紹介をしているので
参考にしてみてわいかがでしょうか??