// Update is called once per frame void Update() { bool isFinalForm = m_finalForm; m_lastUpdateTime += Time.deltaTime; float updateTime = 1 / (isFinalForm ? m_updateSpeed : m_finalPhaseUpdateSpeed); if (m_lastUpdateTime > updateTime) { m_lastUpdateTime = 0; m_index++; if (m_index > 100000000) { m_index = 0; } if (isFinalForm) { m_body.sprite = m_finalFormSprites[m_index % m_finalFormSprites.Count]; } else { m_body.sprite = m_bodySprites[m_index % m_bodySprites.Count]; } List <Sprite> faceSprites = m_restFaceSprites; switch (m_bossAI.GetState()) { case BossState.Roar: faceSprites = m_roarFaceSprites; break; case BossState.Rest: faceSprites = m_restFaceSprites; break; case BossState.PounceCharging: faceSprites = m_pouncingFaceSprites; break; case BossState.Pouncing: faceSprites = m_pouncingFaceSprites; break; case BossState.SpinAttack: faceSprites = m_spinFaceSprites; break; case BossState.Shotgun: faceSprites = m_shotgunFaceSprites; break; case BossState.Summon: faceSprites = m_summonFaceSprites; break; case BossState.Dying: faceSprites = m_roarFaceSprites; break; } m_face.sprite = faceSprites[m_index % faceSprites.Count]; } }