はじめに
開発中のアプリでDOTweenを使った簡単なボタンアニメーションを作ったので紹介します。
使用しているUIアセット(有償): Simple UI - Asset Store
コード
使用する場合は以下のスクリプトをプロジェクトにインポートし、Button
コンポーネントの変わりにアタッチしてください。CC0です。
Gist: PopButton.cs
PopButton.cs
using UnityEngine.UI;
using DG.Tweening;
using UnityEngine;
namespace nkjzm
{
/// <summary>
/// ポップに押されるボタン
/// </summary>
public class PopButton : Button
{
Tweener tweener = null;
new void Start()
{
base.Start();
// ボタンアニメーション
onClick.AddListener(() =>
{
// 再生中のアニメーションを停止/初期化
if (tweener != null)
{
tweener.Kill();
tweener = null;
transform.localScale = Vector3.one;
}
tweener = transform.DOPunchScale(
punch: Vector3.one * 0.1f,
duration: 0.2f,
vibrato: 1
).SetEase(Ease.OutExpo);
});
}
}
}
余談
ボタン押下時の機能をAddListener
するとアニメーションの途中で見えなくなってしまう場合があるので、機能によっては0.2f
秒のラグを入れてあげると良いかもしれません。