private void DrawLibraryAsset(SceneLibraryAsset asset) { if (!asset) { return; } EditorGUILayout.BeginVertical(EditorStyles.helpBox); { if (GUILayout.Button(asset.GetLibraryDisplayName(), EditorStyles.boldLabel)) { EditorGUIUtility.PingObject(asset); } if (asset.Scenes.IsNullOrEmpty()) { EditorGUILayout.LabelField("The collection of scenes is empty."); } else { EditorGUILayout.Space(); foreach (var info in asset.Scenes) { DrawSceneReferenceMenu(info, info.GetSceneInfoDisplayName(), Color.white); } } } EditorGUILayout.EndVertical(); }
internal static string GetLibraryDisplayName(this SceneLibraryAsset libraryAsset) { if (libraryAsset) { return(string.IsNullOrWhiteSpace(libraryAsset.Title) ? $"[{libraryAsset.name}]" : $"{libraryAsset.Title} [{libraryAsset.name}]"); } throw new ArgumentNullException(nameof(libraryAsset)); }
private static int AssetsComparer(SceneLibraryAsset a, SceneLibraryAsset b) { var orderCompareResult = a.SortingOrder.CompareTo(b.SortingOrder); return(orderCompareResult == default ? string.Compare(a.Title, b.Title, StringComparison.Ordinal) : orderCompareResult); }