internal static AssetBundleInfo FindBundle(AssetBundleNameInfo name) { AssetBundleInfo currNode = s_RootLevelBundles; foreach (var token in name.pathTokens) { if (currNode is AssetBundleFolderInfo) { currNode = (currNode as AssetBundleFolderInfo).GetAssetBundleInfoByName(token); if (currNode == null) { return(null); } } else { return(null); } } if (currNode is AssetBundleFolderInfo) { currNode = (currNode as AssetBundleFolderInfo).GetAssetBundleInfoByName(name.shortName); if (currNode is BundleVariantFolderInfo) { currNode = (currNode as BundleVariantFolderInfo).GetAssetBundleInfoByName(name.variant); } return(currNode); } else { return(null); } }
internal static bool HandleBundleRename(BundleTreeViewItem item, string newName) { var originalName = new AssetBundleNameInfo(item.assetBundleInfo.m_Name.fullNativeName); var findDot = newName.LastIndexOf('.'); var findSlash = newName.LastIndexOf('/'); var findBSlash = newName.LastIndexOf('\\'); if (findDot == 0 || findSlash == 0 || findBSlash == 0) { return(false); //can't start a bundle with a / or . } bool result = item.assetBundleInfo.HandleRename(newName, 0); if (findDot > 0 || findSlash > 0 || findBSlash > 0) { item.assetBundleInfo.parent.HandleChildRename(newName, string.Empty); } ExecuteAssetMove(); var node = FindBundle(originalName); if (node != null) { var message = "Failed to rename bundle named: "; message += originalName.fullNativeName; message += ". Most likely this is due to the bundle being assigned to a folder in your Assets directory, AND that folder is either empty or only contains assets that are explicitly assigned elsewhere."; Debug.LogError(message); } return(result); }
internal static AssetBundleFolderInfo CreateEmptyBundleFolder(AssetBundleFolderInfoConcrete folder = null) { folder = (folder == null) ? s_RootLevelBundles : folder; string name = GetUniqueName(folder) + "/dummy"; AssetBundleNameInfo nameData = new AssetBundleNameInfo(folder.m_Name.bundleName, name); return(AddFoldersToBundle(s_RootLevelBundles, nameData)); }
internal static AssetBundleInfo CreateEmptyVariant(BundleVariantFolderInfo folder) { string name = GetUniqueName(folder, kNewVariantBaseName); string variantName = folder.m_Name.bundleName + "." + name; AssetBundleNameInfo nameData = new AssetBundleNameInfo(variantName); return(AddBundleToFolder(folder.parent, nameData)); }
private static AssetBundleInfo AddBundleToFolder(AssetBundleFolderInfo root, AssetBundleNameInfo nameData) { AssetBundleInfo currInfo = root.GetAssetBundleInfoByName(nameData.shortName); if (!System.String.IsNullOrEmpty(nameData.variant)) { if (currInfo == null) { currInfo = new BundleVariantFolderInfo(nameData.bundleName, root); root.AddChild(currInfo); } var folder = currInfo as BundleVariantFolderInfo; if (folder == null) { var message = "Bundle named " + nameData.shortName; message += " exists both as a standard bundle, and a bundle with variants. "; message += "This message is not supported for display or actual bundle building. "; message += "You must manually fix bundle naming in the inspector."; LogError(message); return(null); } currInfo = folder.GetAssetBundleInfoByName(nameData.variant); if (currInfo == null) { currInfo = new BundleVariantDataInfo(nameData.fullNativeName, folder); folder.AddChild(currInfo); } } else { if (currInfo == null) { currInfo = new BundleDataInfo(nameData.fullNativeName, root); root.AddChild(currInfo); } else { var dataInfo = currInfo as BundleDataInfo; if (dataInfo == null) { s_InErrorState = true; LogFolderAndBundleNameConflict(nameData.fullNativeName); } } } return(currInfo); }
private static AssetBundleInfo AddAssetBundleByName(string name) { if (name == null) { return(null); } AssetBundleNameInfo assetBundleNameInfo = new AssetBundleNameInfo(name); AssetBundleFolderInfo assetBundleFolderInfo = AddFoldersToBundle(s_RootLevelBundles, assetBundleNameInfo); AssetBundleInfo assetBundleInfo = AddBundleToFolder(assetBundleFolderInfo, assetBundleNameInfo); return(assetBundleInfo); }
internal static AssetBundleInfo CreateEmptyBundle(AssetBundleFolderInfo folder = null, string newName = null) { if ((folder as BundleVariantFolderInfo) != null) { return(CreateEmptyVariant(folder as BundleVariantFolderInfo)); } folder = (folder == null) ? s_RootLevelBundles : folder; string name = GetUniqueName(folder, newName); AssetBundleNameInfo nameData; nameData = new AssetBundleNameInfo(folder.m_Name.bundleName, name); return(AddBundleToFolder(folder, nameData)); }
private static AssetBundleFolderInfoConcrete AddFoldersToBundle(AssetBundleFolderInfo root, AssetBundleNameInfo nameData) { AssetBundleInfo assetBundleInfo = root; var folder = assetBundleInfo as AssetBundleFolderInfoConcrete; var size = nameData.pathTokens.Count; for (var index = 0; index < size; index++) { if (folder != null) { assetBundleInfo = folder.GetAssetBundleInfoByName(nameData.pathTokens[index]); if (assetBundleInfo == null) { assetBundleInfo = new AssetBundleFolderInfoConcrete(nameData.pathTokens, index + 1, folder); folder.AddChild(assetBundleInfo); } folder = assetBundleInfo as AssetBundleFolderInfoConcrete; if (folder == null) { s_InErrorState = true; LogFolderAndBundleNameConflict(assetBundleInfo.m_Name.fullNativeName); break; } } } return(assetBundleInfo as AssetBundleFolderInfoConcrete); }
internal AssetBundleFolderInfo(List <string> path, int depth, AssetBundleFolderInfo parent) : base("", parent) { m_AssetBundleInfos = new Dictionary <string, AssetBundleInfo>(); m_Name = new AssetBundleNameInfo(""); m_Name.pathTokens = path.GetRange(0, depth); }
internal AssetBundleInfo(string name, AssetBundleFolderInfo parent) { m_Name = new AssetBundleNameInfo(name); m_Parent = parent; }