简单实现方法
<pre name="code" class="csharp">void Start () {
UIEventListener.Get(gameObject).onPress += OnBtnPress;
}
void OnBtnPress(GameObject obj, bool state)
{
if (state)
{
TweenScale.Begin(gameObject, 0.1f, new Vector3(1.2f, 1.2f, 1.2f));
}
else
{
TweenScale.Begin(gameObject, 0.1f, Vector3.one);
}
}
另一张复杂方法
using UnityEngine;
using System.Collections;
/// <summary>
/// 点击物体缩放效果
/// </summary>
public class QxClickScale : MonoBehaviour {
private TweenScale tween;
public GameObject m_scaleTarget;
public float m_toBigRate;
public float m_toSmallRate;
public float m_toBigDelay;
public float m_toSmallDelay;
public float m_toNormalDelay;
public float m_toBigTim;
public float m_toSmallTim;
public float m_toNormalTim;
// Use this for initialization
void Start () {
Init();
}
// Update is called once per frame
void Update () {
}
private void Init()
{
if(m_scaleTarget==null)
{
return;
}
tween = m_scaleTarget.GetComponent<TweenScale>();
if(tween==null)
{
tween= m_scaleTarget.AddComponent<TweenScale>();
}
}
public void ToBig() 暂时没用
{
tween.ResetToBeginning();
SetTween();
tween.from *= m_toSmallRate;
tween.to *= m_toBigRate;
tween.delay = m_toBigDelay;
tween.duration = m_toBigTim;
tween.PlayForward();
tween.AddOnFinished(ToNormal);
}
public void ToNormal()
{
SetTween();
tween.from *= m_toBigRate;
tween.to = Vector3.one;
tween.delay = m_toNormalDelay;
tween.duration = m_toNormalTim;
tween.PlayForward();
}
public void ToSmall()
{
tween.ResetToBeginning();
SetTween();
tween.from = Vector3.one;
tween.to *= m_toSmallRate;
tween.delay = m_toSmallDelay;
tween.duration = m_toSmallTim;
//tween.SetOnFinished(ToRemove);
tween.PlayForward();
}
public void ToRemove()
{
}
private void SetTween()
{
tween.from = Vector3.one;
tween.to = Vector3.one;
tween.delay = 0;
tween.duration = 0;
//tween.enabled = true;
}