public static Color GetTrackColor(TrackAsset track)
        {
            if (track == null)
            {
                return(Color.white);
            }

            // Try to ensure DirectorStyles is initialized first
            // Note: GUISkin.current must exist to be able do so
            if (!DirectorStyles.IsInitialized && GUISkin.current != null)
            {
                DirectorStyles.ReloadStylesIfNeeded();
            }

            Color color;

            if (!s_TrackColorCache.TryGetValue(track.GetType(), out color))
            {
                var attr = track.GetType().GetCustomAttributes(typeof(TrackColorAttribute), true);
                if (attr.Length > 0)
                {
                    color = ((TrackColorAttribute)attr[0]).color;
                }
                else
                {
                    // case 1141958
                    // There was an error initializing DirectorStyles
                    if (!DirectorStyles.IsInitialized)
                    {
                        return(Color.white);
                    }

                    color = DirectorStyles.Instance.customSkin.colorDefaultTrackDrawer;
                }

                s_TrackColorCache[track.GetType()] = color;
            }
            return(color);
        }
Exemple #2
0
 static void DetectStylesChange()
 {
     DirectorStyles.ReloadStylesIfNeeded();
 }