按帧执行
根据条件按帧执行
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;
}