static public List <TrackAsset> GetTrackList(GroupTrack groupTrack)
        {
            var bf             = BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.GetField;
            var type           = groupTrack.GetType().BaseType;
            var fieldInfo      = type.GetField("m_Children", bf);
            var clips          = fieldInfo.GetValue(groupTrack);
            var trackAssetList = clips as List <TrackAsset>;

            if (trackAssetList != null)
            {
                return(trackAssetList);  // 2017.1 tracks
            }
            // later version.
            var scriptableObjectList = clips as List <ScriptableObject>;
            var ret = new List <TrackAsset>();

            foreach (var asset in scriptableObjectList)
            {
                ret.Add(asset as TrackAsset);
            }
            return(ret);
        }