+-金币显示弹一弹动画
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());
    }
}


GIF.gif


首页 我的博客
粤ICP备17103704号