【Unity】エフェクトの生成方法!初心者でも簡単にできます!

Unity Unity

エフェクトの生成方法

今回はAsset Storeにある無料のCartoon Fx FreeというAssetを使用して、簡単にエフェクトを出す方法を解説します。エフェクトを出す方法は、オブジェクトの生成とほとんど同じです。それではやっていきましょう!

Cartoon Fx Freeをインポート

まずは、Asset StoreでCartoon Fx Freeと検索してダウンロードしインポートしてください。

このAssetは、50種類のエフェクトPrefab含んでおり、2D及び3Dのプロジェクトで使用知ることができます。

また、エフェクトは生成したら削除するスクリプトを作成しなければなりませんが、もともと削除するスクリプトが含まれているので、初心者でも簡単に扱うことができます。

Prefab(エフェクト)の生成

Hierarchyに空のGameObjectを作成して、名前をGameManagerオブジェクトに変更します。

作成したGameManagerにGameManagerスクリプトを追加します。

画像

GameManagerスクリプトは、以下のように記述します。

GameManagerスクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class GameManager : MonoBehaviour
{
//生成するエフェクトを読み込む
[SerializeField] GameObject effectPrefab;

void Start()
{
//エフェクトを生成
Instantiate(effectPrefab);
}

}

GameManagerオブジェクトに発生させたいエフェクトのプレハブを追加します。

画像

これでエフェクトの生成が完了しました。

エフェクトを特定の場所に生成する

Hierarchyに空のGameobjectを作成し、名前をEffectGenerateに変更します。

画像

先程作成した、GameManagerスクリプトを少し変更します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class GameManager : MonoBehaviour
{
//生成するエフェクトを読み込む
[SerializeField] GameObject effectPrefab;
//エフェクトを生成する場所にある、親要素となるオブジェクトを読み込む
[SerializeField] Transform effectGenerate;

void Start()
{
//エフェクトを生成,生成する場所
Instantiate(effectPrefab,effectGenerate);
}

}

GameManagerオブジェクトに、EffectGenerateを追加します。

画像

このEffectGenerateのポジションをいじることで、エフェクトが生成する場所を変更することができます。

エフェクトの生成頻度を制御

一秒ごとに生成するサンプルスクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class GameManager : MonoBehaviour
{
//生成するエフェクトを読み込む
[SerializeField] GameObject effectPrefab;
//エフェクトを生成する場所にある、親要素となるオブジェクトを読み込む
[SerializeField] Transform effectGenerate;

void Start()
{
//smileEffectを読み込む
StartCoroutine(Generate());
}

//コルーチンを使った時間を制御
IEnumerator Generate()
{
while (true)
{
//一秒たったら
yield return new WaitForSeconds(1f);
//生成
Instantiate(effectPrefab, effectGenerate);
}
}

}

別のエフェクトを交互に生成

エフェクトを切り替えるサンプルスクリプト

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class GameManager : MonoBehaviour
{
//生成するエフェクトを読み込む
[SerializeField] GameObject effectPrefab;
//生成するエフェクトを読み込む
[SerializeField] GameObject effectPrefabSecond;
//エフェクトを生成する場所にある、親要素となるオブジェクトを読み込む
[SerializeField] Transform effectGenerate;

void Start()
{
//smileEffectを読み込む
StartCoroutine(Generate());
}

//コルーチンを使った時間を制御
IEnumerator Generate()
{
while (true)
{
//一秒たったら
yield return new WaitForSeconds(1f);
//生成
Instantiate(effectPrefab, effectGenerate);
//一秒たったら
yield return new WaitForSeconds(1f);
//生成
Instantiate(effectPrefabSecond, effectGenerate);
}
}

}

 

 

まとめ

今回は、エフェクトをを簡単に生成する方法と生成する場所を変更する方法を解説しました。

また、エフェクトの生成頻度を調整する方法や別のエフェクトを生成するサンプルスクリプトを公開しました。

このように、エフェクトの生成方法さえわかってさえいれば、自分の好きなタイミングに自分の好きな場所に生成することが可能になります。

コメント

タイトルとURLをコピーしました