using System.Collections;
using UnityEngine;
public class PushTextShow : MonoBehaviour {
public GameObject target;
public float BigNum = 0.4f; //0 - 放大多少
public int BigFrame = 5;
public float TanNum = 0.8f; //弹一弹的弧度
public int TanFrame = 5; //弹一弹的帧率
public float WaitTime = 1.5f;//展示的等待时间
public float XiaoShiFrame = 10;//消失的帧率
private void Awake()
{
if (target == null)
target = this.gameObject;
}
void Start() {
StartCoroutine(Ani());
}
IEnumerator Ani()
{
//初始化
target.transform.localScale = Vector3.zero;
float BigOff = (BigNum + 1) / BigFrame;
//再放大
for (int i = 0; i < BigFrame; i++)
{
this.transform.localScale = new Vector3(target.transform.localScale.x + BigOff, target.transform.localScale.y + BigOff, target.transform.localScale.z);
yield return new WaitForEndOfFrame();
}
float TanOff = TanNum / TanFrame;
//缩小放大弹一下
for (int i = 0; i < TanFrame; i++)
{
this.transform.localScale = new Vector3(target.transform.localScale.x - TanOff, target.transform.localScale.y - TanOff, target.transform.localScale.z);
yield return new WaitForEndOfFrame();
}
for (int i = 0; i < TanFrame; i++)
{
this.transform.localScale = new Vector3(target.transform.localScale.x + TanOff, target.transform.localScale.y + TanOff, target.transform.localScale.z);
yield return new WaitForEndOfFrame();
}
//先停留一下
yield return new WaitForSeconds(WaitTime);
float XiaoShiOff = target.transform.localScale.x / XiaoShiFrame;
//消失
for (int i = 0; i < XiaoShiFrame; i++)
{
this.transform.localScale = new Vector3(target.transform.localScale.x - XiaoShiOff, target.transform.localScale.y - XiaoShiOff, target.transform.localScale.z);
yield return new WaitForEndOfFrame();
}
//这里只是让效果重新播放
yield return new WaitForSeconds(0.2f);
StartCoroutine(Ani());
}
}
