public void Update() { // Entity Dead for (int i = mMstDeadAgents.Count - 1; i >= 0; i--) { SceneEntityAgent agent = mMstDeadAgents[i]; MonsterSpawnPoint msp = agent.mstPoint; if (msp.UpdateRespawnTime(Time.deltaTime)) { if (agent.spawnArea != null) { if (agent.spawnArea.MaxRespawnCount != 0) { agent.spawnArea.MaxRespawnCount--; } else { mMstDeadAgents.RemoveAt(i); continue; } } else { if (msp.MaxRespawnCount != 0) { msp.MaxRespawnCount--; } else { mMstDeadAgents.RemoveAt(i); continue; } } msp.isDead = false; agent.Respawn(); Debug.Log("The Agent [" + agent.Id.ToString() + "] is respawned"); mMstDeadAgents.RemoveAt(i); } } }