internal static IEnumerable <ExportPackageItem> GetAssetItemsForExport(ICollection <string> guids, bool includeDependencies) { // if nothing is selected, export all if (0 == guids.Count) { string[] temp = new string[0]; // <--- I dont get this API guids = new HashSet <string>(AssetDatabase.CollectAllChildren(AssetDatabase.assetFolderGUID, temp)); } ExportPackageItem[] assets = PackageUtility.BuildExportPackageItemsListWithPackageManagerWarning(guids.ToArray(), includeDependencies, true); // If any scripts are included, add all scripts with dependencies if (includeDependencies && assets.Any(asset => UnityEditorInternal.InternalEditorUtility.IsScriptOrAssembly(asset.assetPath))) { assets = PackageUtility.BuildExportPackageItemsListWithPackageManagerWarning( guids.Union(UnityEditorInternal.InternalEditorUtility.GetAllScriptGUIDs()).ToArray(), includeDependencies, true); } // If the user exports the root Assets folder, we need to remove it from the list // explicitly, as it doesnt make sense assets = assets.Where(val => val.assetPath != "Assets").ToArray(); return(assets); }