internal static bool HandleBundleRename(BundleTreeItem item, string newName) { var originalName = new BundleNameData(item.bundle.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.bundle.HandleRename(newName, 0); if (findDot > 0 || findSlash > 0 || findBSlash > 0) { item.bundle.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 override BundleTreeItem CreateTreeView(int depth) { RefreshMessages(); var result = new BundleTreeItem(this, depth, Model.GetFolderIcon()); foreach (var child in m_Children) { result.AddChild(child.Value.CreateTreeView(depth + 1)); } return(result); }
internal DragAndDropData(DragAndDropArgs a) { args = a; draggedNodes = DragAndDrop.GetGenericData("AssetBundleModel.BundleInfo") as List <AssetBundleModel.BundleInfo>; targetNode = args.parentItem as AssetBundleModel.BundleTreeItem; paths = DragAndDrop.paths; if (draggedNodes != null) { foreach (var bundle in draggedNodes) { if ((bundle as AssetBundleModel.BundleFolderInfo) != null) { hasBundleFolder = true; } else { var dataBundle = bundle as AssetBundleModel.BundleDataInfo; if (dataBundle != null) { if (dataBundle.isSceneBundle) { hasScene = true; } else { hasNonScene = true; } if ((dataBundle as AssetBundleModel.BundleVariantDataInfo) != null) { hasVariantChild = true; } } } } } else if (DragAndDrop.paths != null) { foreach (var assetPath in DragAndDrop.paths) { if (AssetDatabase.GetMainAssetTypeAtPath(assetPath) == typeof(SceneAsset)) { hasScene = true; } else { hasNonScene = true; } } } }
protected override void RenameEnded(RenameEndedArgs args) { base.RenameEnded(args); if (args.newName.Length > 0 && args.newName != args.originalName) { args.newName = args.newName.ToLower(); args.acceptedRename = true; AssetBundleModel.BundleTreeItem renamedItem = FindItem(args.itemID, rootItem) as AssetBundleModel.BundleTreeItem; args.acceptedRename = AssetBundleModel.Model.HandleBundleRename(renamedItem, args.newName); ReloadAndSelect(renamedItem.bundle.nameHashCode, false); } else { args.acceptedRename = false; } }
private void AddDepsItemIntoManifest(AssetBundleModel.BundleTreeItem item, Action <string, string> doAddManifest) { if (item != null) { var bundle = item.bundle as AssetBundleModel.BundleDataInfo; if (bundle != null) { string bundleName = bundle.displayName; foreach (var asset in bundle.Assets) { doAddManifest(asset.fullAssetName, asset.realBundleName); } } else { foreach (var child in item.children) { AddDepsItemIntoManifest(child as AssetBundleModel.BundleTreeItem, doAddManifest); } } } }
internal override BundleTreeItem CreateTreeView(int depth) { RefreshMessages(); Texture2D icon = null; if ((m_Children.Count > 0) && ((m_Children.First().Value as BundleVariantDataInfo).IsSceneVariant())) { icon = Model.GetSceneIcon(); } else { icon = Model.GetBundleIcon(); } var result = new BundleTreeItem(this, depth, icon); foreach (var child in m_Children) { result.AddChild(child.Value.CreateTreeView(depth + 1)); } return(result); }
private bool CheckInDepsFolder(AssetBundleModel.BundleTreeItem item) { return(item.bundle.m_Name.bundleName.StartsWith(AssetBundleConfig.AssetBundlesDepsDir + "/")); }