internal static void HandleTrackData(GameObject gameObject, dynamic gameObjectData, IReadonlyBeatmapData beatmapData, float noteLinesDistance, TrackLaneRing trackLaneRing)
        {
            Track track = NoodleExtensions.Animation.AnimationHelper.GetTrackPreload(gameObjectData, beatmapData);

            if (track != null)
            {
                GameObjectTrackController trackController = gameObject.AddComponent <GameObjectTrackController>();
                trackController.Init(track, noteLinesDistance, trackLaneRing);
            }
        }
        internal static void HandleTrackData(
            GameObject gameObject,
            Dictionary <string, object?> gameObjectData,
            IReadonlyBeatmapData beatmapData,
            float noteLinesDistance,
            TrackLaneRing?trackLaneRing,
            ParametricBoxController?parametricBoxController,
            BeatmapObjectsAvoidance?beatmapObjectsAvoidance)
        {
            Track?track = GetTrack(gameObjectData, beatmapData);

            if (track != null)
            {
                GameObjectTrackController trackController = gameObject.AddComponent <GameObjectTrackController>();
                trackController.Init(track, noteLinesDistance, trackLaneRing, parametricBoxController, beatmapObjectsAvoidance);
            }
        }