Programming Serendipity

プログラミングを中心に種々雑多に書き留めます

オブジェクトにポインタを乗せると拡大し、外すと元に戻るスクリプト

ボタンなどのUIの選択で、マウスカーソルを乗せるとおっきくなるのありますよね?あれを実現します。

対象のオブジェクトにアタッチしてください。要iTween。

using UnityEngine;
using UnityEngine.EventSystems;

public class FocusAnimator : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
{
    [SerializeField] float extRate = 1.1f;
    [SerializeField] float time = 0.2f;

    public void OnPointerEnter(PointerEventData eventData)
    {
        iTween.ScaleTo(gameObject, iTween.Hash("scale", new Vector3(extRate, extRate, 1), "time", time, "easeType", iTween.EaseType.easeOutBack));
    }

    public void OnPointerExit(PointerEventData eventData)
    {
        iTween.ScaleTo(gameObject, iTween.Hash("scale", new Vector3(1, 1, 1), "time", time, "easeType", iTween.EaseType.easeOutBack));
    }
}

最初はボタン用に作っていたのですが、汎用的に使えることに気づいて書き直しました。こんなに簡単なコードで結構見栄えがよくなります。IPointerEnterHandlerIPointerExitHandlerの2つのインターフェースを継承することでそれぞれイベントを捕捉できるようになります。これ以外にもいろいろ使えそうなインターフェースがあるので試してみたいですね。