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); }
static void DetectStylesChange() { DirectorStyles.ReloadStylesIfNeeded(); }