一个协程的使用示例(走走停停效果)

IEnumerator GoAndWait()
    {
        while (true)
        {
            yield return new WaitForSeconds(3f);

             startTime = Time.time;
             endTime = startTime;
            //Debug.Log("" + endTime + "  " + startTime);
            while (endTime - startTime < 2f)
            {
                transform.Translate(transform.forward * Time.deltaTime);
                yield return new WaitForEndOfFrame();
                endTime = Time.realtimeSinceStartup;
            }
        }
    }

start中调用一下协程。


非协程实现需要在update中调用

void Update () {
        //Debug.Log("" + endTime + "  " + startTime);
        curT += Time.deltaTime;
        if (curT < 1f)
        {
            transform.Translate(0, 0, 1 * Time.deltaTime);

        }
        else
        {
            delT += Time.deltaTime;
            if (delT > 3f)
            {
                curT = 0f;
                delT = 0f;
            }
        }

    }



你可能感兴趣的:(unity)