Member-only story
Unity Game Development Optimization Tips
Optimize Coroutines
//Fine tune your code for smooth gameplay
2 min readAug 28, 2021
Today I just have quick tip to share to help optimize your C# coroutines for better performance in Unity.
Lets look at a script for spawning enemies.
private IEnumerator SpawnPowerup()
{
yield return new WaitForSeconds(3.0f);
while (_canSpawn)
{
yield return new WaitForSeconds(Random.Range(8f,10.0f));
// roll random 100. Tier 1 = 0 - 60, Tier 2 = 61 - 85, Tier 3 = 75 - 99
var randomRoll = Random.Range(1f, 100f);
var randomLocation = new Vector3(Random.Range(-8f, 8f), 7, 0);
GameObject newPowerup;
switch (randomRoll)
{
case >= 1 and <= 60:
newPowerup = Instantiate(_powerUpObjectT1[Random.Range(0, _powerUpObjectT1.Length)], randomLocation, Quaternion.identity);
newPowerup.transform.parent = _powerUpContainer.transform;
break;
case >= 61 and <= 89:
newPowerup = Instantiate(_powerUpObjectT2[Random.Range(0, _powerUpObjectT2.Length)], randomLocation, Quaternion.identity);
newPowerup.transform.parent = _powerUpContainer.transform;
break;
case >= 90 and <= 100:
newPowerup =…