IEnumerator Consolidate() { if (gameObject == null) { yield break; } WaitForSeconds w = new WaitForSeconds(1f); VoxelChunk targetChunk; VoxelPlayEnvironment env = VoxelPlayEnvironment.instance; if (env.GetChunk(transform.position, out targetChunk, false)) { const float maxDist = 100 * 100; while (FastVector.SqrDistanceByValue(targetChunk.position, env.cameraMain.transform.position) < maxDist && env.ChunkIsInFrustum(targetChunk)) { yield return(w); } env.VoxelCancelDynamic(this); } }