目的
Unityで波紋のエフェクトが欲しく、諸々の事情からDotween Proの使用を検討し、Googleで[Unity 波紋 エフェクト Dotween]と検索したが出てこなかったため、記事にすることにした。
開発環境
- Mac Book air M1 2020 macOS Ventura 13.2
- Unity 2021.3.17f1
- Dotween Pro Version 1.0.335
- Dotween 1.2.705[Release build]
結果

Unityエディタでの作業
まずはこういう背景が透過してて、良い塩梅のドーナツ状の円の画像を用意します。

次にUnityエディタにインポートして、シーンに追加します。
ここではHamonCircleと命名しています。

そして、HamonCircleのSpriteRendererのColorのアルファ値を0にします。
その後、C#スクリプト(HamonEffect.cs)を作成して、HamonCircleにアタッチします。
最後にHamonEffectでSerializeFieldにしたSpriteRendererに、インスペクタービューからHamonCircleのSpriteRendererを設定します。
ソースコード
using System.Collections;
using System.Collections.Generic;
using DG.Tweening;
using UnityEngine;
// 波紋作成クラス
public class HamonEffect : MonoBehaviour
{
// 波紋のSpriteRenderer
// Unityエディタで設定
[SerializeField]
SpriteRenderer sr;
// スタートメソッド
void Start()
{
// シーケンス作成
var sequence = DOTween.Sequence();
/*
* ・2秒間で大きさを2倍にする
* transform.DOScale(new Vector3(2f, 2f, 2f), 2f)
* ・1秒間で透明度を50/100にする(半透明にする)
* sr.DOFade(0.5f, 1f)
* ・1秒間で透明度を0/100にする(透明にする)
* sr.DOFade(0f, 1f)
*/
sequence.Append(transform.DOScale(new Vector3(2f, 2f, 2f), 2f))
.Join(sr.DOFade(0.8f, 1f).OnComplete(() => { sr.DOFade(0f, 1f); }));
}
}
解説
Dotweenのシーケンスを利用して、2秒かけて画像のサイズを2倍に変えながら、1秒かけて半透明して、半透明にする処理が終わった後で1秒かけて透明にしています。

コメント