LoginSignup
0
1

More than 3 years have passed since last update.

【Unity】ボタンを押したらハート送りまくる機能を実装する【Particle System】

Last updated at Posted at 2020-09-07

ボタンを1回押すと1つハートが出てきます。

【やってること】

・ボタンとParticle Systemを連携
・OnButtonDownを検知するたびにParticle SystemをPlay()

【環境】

・Mac OSX El Capitan
・Unity versiton:2018.3.0

【結果】

【作り方】

最終的な配置イメージ
スクリーンショット 2020-09-07 22.36.49.png

①Particle Systemを作成する

・Particle Systemをシーンに配置する
・Loopingのチェックを外す
・Start Speedの値を10にする
・PlayOnAwakeのチェックを外す
・EmissionのRate over Timeを0にする
・EmissionのBurstsを下図のように設定
  ※Burstsはパーティクルがどのタイミングでどれくらい出るかを設定できます。
  今回は押した瞬間に1つ出てきて欲しいので、Time=0、Count=1です。
 スクリーンショット 2020-09-07 22.01.03.png
・Limit Velocity over Lifetimeを下図のように設定
  ※SpeedとDampenの役割についてはこちらのサイトを参考にさせていただきました
   http://tsubakit1.hateblo.jp/entry/2017/05/03/211922
 スクリーンショット 2020-09-07 22.04.19.png
・Color over Lifetimeを下図のように設定
 スクリーンショット 2020-09-07 22.05.24.png

②Particle System用のMaterialを作る

・このハートのPNG画像をアセットに追加、Texture TypeをSprite(2D and UI)に変更する
 ※真っ白だから見えないけど↓ここにハートの画像があります。
 Like.png

・新しいMaterialを作成する
・ShaderをParticles/Standard Unitに変更する
・Render ModeをFadeにする
・ハートの画像をMaterialのAlbedoの□にドラッグ&ドロップする
・このMaterialをParticle SystemのRender内のMaterialに入れる

③押したらハートが出るボタンを作る

・Buttonをシーンに配置する
・FlashLike.csをアタッチする

FlashLike.cs
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class FlashLike : MonoBehaviour
{
    public ParticleSystem likeEffect;
    // Start is called before the first frame update
    void Start()
    {
        likeEffect = likeEffect.GetComponent<ParticleSystem>();
    }

    public void PlayLikeEffect() {
        likeEffect.Play(); 
    }
}

・InspectorからFlashLikeコンポーネントのLikeEffectにParticle Ststemを代入する
・ButtonコンポーネントのOnClickからFlashLike,PlayLikeEffectを選択する
 スクリーンショット 2020-09-07 22.21.52.png

以上!完成!
Limit Velocity over LifetimeやColor Over Lifetimeの値をいじって好きなハートの出し方を探ってみてください!

 

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1