C# 协程的使用

按帧执行

根据条件按帧执行

IEnumerator InvincibleCor;//协程 
public void HitInvincible()
{        
    //InvincibleCor
    if (InvincibleCor != null)
    {
        StopCoroutine(InvincibleCor);//如果有协程就停掉
    }
    InvincibleCor = InvincibleCoroutine();
    StartCoroutine(InvincibleCor);//开启新的协程
}
//开启协程记录技能时间
IEnumerator InvincibleCoroutine()
{
    m_IsInvincible = true;
    float timer = m_SillTime;
    while (timer > 0)
    {
        if (gm.IsPlay && !gm.IsPause)//如果不是暂停状态
        {
            timer -= Time.deltaTime;
        }
        yield return 0;//每帧执行
    }    
    //协程执行完后,会退出while循环,执行下面的代码
    m_IsInvincible = false;
}
发布了205 篇原创文章 · 获赞 8 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/cuijiahao/article/details/104062809
今日推荐