Hey guys, I’m having trouble with something. I’m making a huge tile based procedural world, and using object pooling to keep the performance up. Now it works pretty well, but I have a script that iterates through every point and checks to see if it should place a tile at that spot. Here is what it looks like right now:
IEnumerator CheckActivation()
{
if (activatorItems.Count > 0)
{
for(int i=0;i<activatorItems.Count;i++)
{
if (Vector3.Distance(plrtransform.position, activatorItems*.itemPos) < distanceFromPlayer)*
{
if (activatorItems*.itemName.Contains(“grasstile”))*
{
objectPooler.Instance.SpawnFromPool(“GrassTile”, activatorItems*.itemPos, Quaternion.identity);*
}
else if (activatorItems*.itemName.Contains(“sandtile”))*
{
objectPooler.Instance.SpawnFromPool(“SandTile”, activatorItems*.itemPos, Quaternion.identity);*
}
else if (activatorItems*.itemName.Contains(“watertile”))*
{
objectPooler.Instance.SpawnFromPool(“WaterTile”, activatorItems*.itemPos, Quaternion.identity);*
}
}
}
}
yield return new WaitForSecondsRealtime(1f);
StartCoroutine(“CheckActivation”);
}
}
So lets say I have a 1000x1000 tiles, so its iterating over a million tiles. And every single iteration I get a lag spike. I’m just not sure how I could clean this up to make it more performance friendly