void OnPlayToggle(bool playing)
 {
     UseChunkLoading = !playing;
     foreach (BeatmapObjectContainer c in LoadedContainers)
     {
         c.SafeSetActive(true);
     }
     obstacleRenderer = GridTransform.GetComponentsInChildren <Renderer>();
     if (playing)
     {
         foreach (Renderer g in obstacleRenderer)
         {
             if (g.materials.First().GetFloat("_CircleRadius") != 6.27f)
             {
                 g.materials.First().SetFloat("_CircleRadius", 6.27f);
             }
         }
     }
     else
     {
         foreach (Renderer g in obstacleRenderer)
         {
             if (g.materials.First().GetFloat("_CircleRadius") != 999)
             {
                 g.materials.First().SetFloat("_CircleRadius", 999);
             }
         }
     }
 }
    public override void SortObjects()
    {
        obstacleRenderer = GridTransform.GetComponentsInChildren <Renderer>();
        LoadedContainers = LoadedContainers.OrderBy(x => x.objectData._time).ToList();
        uint id = 0;

        for (int i = 0; i < LoadedContainers.Count; i++)
        {
            if (LoadedContainers[i].objectData is BeatmapObstacle)
            {
                BeatmapObstacle noteData = (BeatmapObstacle)LoadedContainers[i].objectData;
                noteData.id = id;
                LoadedContainers[i].gameObject.name = "Obstacle " + id;
                id++;
            }
        }
        UseChunkLoading = true;
    }