UnityEditor.AssetBundleNameGUI.AssetBundlePopup C# (CSharp) Method

AssetBundlePopup() private method

private AssetBundlePopup ( Rect rect, int id, IEnumerable assets, bool isVariant ) : void
rect UnityEngine.Rect
id int
assets IEnumerable
isVariant bool
return void
        private void AssetBundlePopup(Rect rect, int id, IEnumerable<Object> assets, bool isVariant)
        {
            bool flag;
            List<string> list = new List<string> { 
                "None",
                ""
            };
            IEnumerable<string> source = this.GetAssetBundlesFromAssets(assets, isVariant, out flag);
            string[] collection = !isVariant ? AssetDatabase.GetAllAssetBundleNamesWithoutVariant() : AssetDatabase.GetAllAssetBundleVariants();
            list.AddRange(collection);
            list.Add("");
            int count = list.Count;
            list.Add("New...");
            int num2 = -1;
            int num3 = -1;
            if (!isVariant)
            {
                num2 = list.Count;
                list.Add("Remove Unused Names");
                num3 = list.Count;
                if (Enumerable.Count<string>(source) != 0)
                {
                    list.Add("Filter Selected Name" + (!flag ? "" : "s"));
                }
            }
            int selected = 0;
            string str = Enumerable.FirstOrDefault<string>(source);
            if (!string.IsNullOrEmpty(str))
            {
                selected = list.IndexOf(str);
            }
            EditorGUI.BeginChangeCheck();
            EditorGUI.showMixedValue = flag;
            selected = EditorGUI.DoPopup(rect, id, selected, EditorGUIUtility.TempContent(list.ToArray()), Styles.popup);
            EditorGUI.showMixedValue = false;
            if (EditorGUI.EndChangeCheck())
            {
                if (selected == 0)
                {
                    this.SetAssetBundleForAssets(assets, null, isVariant);
                }
                else if (selected == count)
                {
                    this.ShowNewAssetBundleField(isVariant);
                }
                else if (selected == num2)
                {
                    AssetDatabase.RemoveUnusedAssetBundleNames();
                }
                else if (selected == num3)
                {
                    this.FilterSelected(source);
                }
                else
                {
                    this.SetAssetBundleForAssets(assets, list[selected], isVariant);
                }
            }
        }