using UnityEngine;
public class ButtonMotion : MonoBehaviour
{
public float Deceleration = 0.6f;
public float Friction = 0.8f;
public float MinScale = 1;
public float MaxScale = 1.5f;
private float mAmplitude;
private float mTargetScale;
private float mScale;
private void Awake()
{
mScale = MinScale;
mTargetScale = MinScale;
}
private void Update()
{
mAmplitude += mTargetScale - mScale;
mScale += mAmplitude * Friction;
mAmplitude *= Deceleration;
if ( Mathf.Abs( mTargetScale - mScale ) < 0.005f &&
Mathf.Abs( mAmplitude ) < 0.001f )
{
mScale = mTargetScale;
}
var localScale = transform.localScale;
localScale.x = mScale;
localScale.y = mScale;
transform.localScale = localScale;
}
private void OnHover( bool isOver )
{
mTargetScale = isOver ? MaxScale : MinScale;
}
}
- 上記のスクリプトを ButtonMover.cs という名前で Unity プロジェクトに追加する
- UISprite と BoxCollider がアタッチされたオブジェクトに ButtonMover.cs をアタッチする
参考サイト
http://blog.project-nya.jp/817