예제 #1
0
        protected override AdvancedDropdownItem BuildRoot()
        {
            if (_tempGuids == null)
            {
                _tempGuids = new HashSet <string>();
            }
            _tempGuids.Clear();
            string[] sourceAssetSearchPaths = new[] { "Assets" };
            _tempGuids.UnionWith(AssetDatabase.FindAssets($"t:{_assetReferenceDropdownState.AssetType.Name}", sourceAssetSearchPaths));

            var root = new AssetReferenceDropdownFolderItem("Assets", "Assets", true);

            string[] assetGuids = new List <string>(_tempGuids).ToArray();
            for (int i = 0; i < assetGuids.Length; i++)
            {
                string assetPath = AssetDatabase.GUIDToAssetPath(assetGuids[i]);


                var assetItem = new AssetReferenceDropdownAssetItem(assetPath, System.IO.Path.GetFileName(assetPath));

                //找到父节点
                AssetReferenceDropdownFolderItem parent = GetParentDropdownItem(root, assetItem);
                if (parent == null)
                {
                    parent = CreateParentDropdownItem(root, assetItem);
                }
                parent.AddAsset(assetItem);
                assetItem.ParentFolder = parent;
            }

            return(root);
        }