【Unity】タッチした場所にエフェクトを表示する方法

unity

Unityで2Dゲームを作っていてタッチ(クリック)した場所にエフェクトを出したかったのですが、

ググってもなかなか関連記事が出て来なかったので、メモ程度にまとめます。

こんな感じで作ってみました。

以下の手順で実装しました。

  1. アセットストアからエフェクトをダウンロード
  2. タッチした座標にエフェクトを生成
  3. 生成したエフェクトは1秒後に削除

使用したエフェクトは無料の以下のものです。

https://assetstore.unity.com/packages/vfx/particles/effect-textures-and-prefabs-109031#description

これをUnityにインポートしましょう。

動画で使っているのはHitEffect_Bです。

これを使ってタッチしたところにエフェクトを出してみるコードを作成します。

コードは以下の通り。

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

public class TapParticle : MonoBehaviour
{
    public GameObject prefab;
    public float deleteTime = 1.0f;

    // Update is called once per frame
    void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            //マウスカーソルの位置を取得。
            var mousePosition = Input.mousePosition;
            mousePosition.z = 3f;
             GameObject clone = Instantiate(prefab, Camera.main.ScreenToWorldPoint(mousePosition),
                 Quaternion.identity);
            Destroy(clone, deleteTime);
        }
    }

}

上記のコードを適当なオブジェクトにアタッチして、変数のprefabにインポートしたHitEffect_Bをドラッグアンドドロップで代入すれば完成です。

お疲れ様でした。

ABOUTこの記事をかいた人

個人アプリ開発者。Python、Swift、Unityのことを発信します。月間2.5万PVブログ運営。 Twitter:@yamagablog