Unity 利用Coroutine实现跳动数字效果

纯粹转载:转载注明参考链接!

参考链接:http://xataxnova.blog.163.com/blog/static/236620063201451061738122/,作者:网易博客 xataxnova

示例代码:(将该脚本绑在一个Lable对象上,即可测试,显示为从1跳到10)

using UnityEngine;
using System.Collections;

public class test : MonoBehaviour 
{
    int result = 0;
    private int start = 1;
    private int end = 10;
    private int jumpTimes = 9;

    private UILabel label = null;
    void Start()
    {
        label = gameObject.GetComponent<UILabel>();
        StartCoroutine(JumpNumber());
    }

    public IEnumerator JumpNumber()
    {
        int delta = (end - start) / jumpTimes;
        result = 0;
        
        for (int i = 0; i < jumpTimes; i++)
        {
            result += delta;
            label.text = result.ToString();
            yield return new WaitForSeconds(1);
        }

        result = end;
        label.text = result.ToString();
        StopCoroutine(JumpNumber());
    }
}

   代码中 yield return new WaitForSeconds(1);表示返回1秒,若写成yield return1;表示返回1帧。

原文地址:https://www.cnblogs.com/vitah/p/4171813.html