int SortDependcyFunc(TreeViewItem left, TreeViewItem right) { if (left.depth == 0 && right.depth == 0) { AssetTreeItem <DependencyTreeData> leftItem = left as AssetTreeItem <DependencyTreeData>; AssetTreeItem <DependencyTreeData> rightItem = right as AssetTreeItem <DependencyTreeData>; if (leftItem != null && rightItem != null) { var leftList = _model.GetDependParents(leftItem.GetData().FilePath); var rightList = _model.GetDependParents(rightItem.GetData().FilePath); int leftcnt = leftList.Count; int rightcnt = rightList.Count; ListPool <DependencyTreeData> .Release(leftList); ListPool <DependencyTreeData> .Release(rightList); return(_sortval * (leftcnt - rightcnt)); } } else if (left.depth == 0) { return(-1); } else if (right.depth == 0) { return(1); } return(0); }
void OnDropDraggedElements(List <TreeViewItem> draggedRows, AssetTreeItem <AssetTreeData> parent) { if (parent.depth != 0) { Debug.LogErrorFormat("{0} depth error ", parent); return; } var draggedElements = ListPool <AssetTreeData> .Get(); foreach (var value in draggedRows) { AssetTreeItem <AssetTreeData> assetval = value as AssetTreeItem <AssetTreeData>; if (assetval != null) { draggedElements.Add(assetval.GetData()); } } var selectedIDs = new List <int>(); foreach (var data in draggedElements) { selectedIDs.Add(data.Id); } //m_TreeModel.MoveElements(parent, insertIndex, draggedElements); _treeView.SetSelection(selectedIDs, TreeViewSelectionOptions.RevealAndFrame); //reset assetbundle foreach (var data in draggedElements) { var import = AssetImporter.GetAtPath(data.FilePath); if (import != null) { var oldname = import.assetBundleName; var newname = parent.displayName; GuiShowMsg msg = new GuiShowMsg(); msg.Time = 3f; msg.MessageType = MessageType.Info; msg.Message = string.Format("{0} assetbundlename rename from {1} to {2}", data.FilePath, oldname, newname); import.assetBundleName = newname; import.SaveAndReimport(); _tips.Enqueue(msg); } } bool update = draggedElements.Count > 0; ListPool <AssetTreeData> .Release(draggedElements); if (update) { //refresh EditorContexts.mIns.ForceModeChange(EditorContexts.mIns.Mode); } }
int SortResTypeFunc(TreeViewItem left, TreeViewItem right) { AssetTreeItem <DependencyTreeData> leftItem = left as AssetTreeItem <DependencyTreeData>; AssetTreeItem <DependencyTreeData> rightItem = right as AssetTreeItem <DependencyTreeData>; if (leftItem != null && rightItem != null) { int leftrestype = (int)leftItem.GetData().EditorInfo.RuntimeInfo.AssetResType; int rightrestype = (int)rightItem.GetData().EditorInfo.RuntimeInfo.AssetResType; return(_sortval * (leftrestype - rightrestype)); } return(0); }
int SortDependcyFunc(TreeViewItem left, TreeViewItem right) { AssetTreeItem <AssetTreeData> leftItem = left as AssetTreeItem <AssetTreeData>; AssetTreeItem <AssetTreeData> rightItem = right as AssetTreeItem <AssetTreeData>; if (leftItem != null && rightItem != null) { int leftsize = leftItem.GetData().EditorInfo.RuntimeInfo.DependenciesCnt; int rightsize = rightItem.GetData().EditorInfo.RuntimeInfo.DependenciesCnt; return(_sortval * (leftsize - rightsize)); } return(0); }
void OnDropDraggedElements(List <TreeViewItem> draggedRows, AssetTreeItem <SpriteTrackData> parent) { var draggedElements = ListPool <SpriteTrackData> .Get(); foreach (var value in draggedRows) { AssetTreeItem <SpriteTrackData> assetval = value as AssetTreeItem <SpriteTrackData>; if (assetval != null) { draggedElements.Add(assetval.GetData()); } } var selectedIDs = new List <int>(); foreach (var data in draggedElements) { selectedIDs.Add(data.Id); } //m_TreeModel.MoveElements(parent, insertIndex, draggedElements); _treeView.SetSelection(selectedIDs, TreeViewSelectionOptions.RevealAndFrame); string parentTag = parent.displayName; if (!string.IsNullOrEmpty(parentTag)) { foreach (var data in draggedElements) { var import = AssetImporter.GetAtPath(data.AtlasData.SprData.AssetPath) as TextureImporter; if (import != null) { import.spritePackingTag = parentTag; import.SaveAndReimport(); } } bool update = draggedElements.Count > 0; ListPool <SpriteTrackData> .Release(draggedElements); if (update) { //refresh EditorContexts.mIns.ForceModeChange(EditorContexts.mIns.Mode); } } else { Debug.LogError("Parent Tag is Empty"); } }
int SortSelfFileSizeFunc(TreeViewItem left, TreeViewItem right) { AssetTreeItem <DependencyTreeData> leftItem = left as AssetTreeItem <DependencyTreeData>; AssetTreeItem <DependencyTreeData> rightItem = right as AssetTreeItem <DependencyTreeData>; if (leftItem != null && rightItem != null) { var ld = leftItem.GetData(); var rd = rightItem.GetData(); long leftsize = AssetBundleEditorHelper.GetSelfFileSize(ref ld, left.depth == 0, _model); long rightsize = AssetBundleEditorHelper.GetSelfFileSize(ref rd, left.depth == 0, _model); return(_sortval * (int)(leftsize - rightsize)); } return(0); }
public void Drag(ref AssetDragAndDropArgs dragargs, ref DragAndDropVisualMode dragmd) { var draggedRows = DragAndDrop.GetGenericData("AssetTreeViewDragging") as List <TreeViewItem>; if (draggedRows != null) { switch (dragargs.dragAndDropPosition) { case AssetDragAndDropArgs.DragAndDropPosition.UponItem: case AssetDragAndDropArgs.DragAndDropPosition.BetweenItems: { bool validDrag = dragargs.parentItem.depth != 0; if (dragargs.performDrop && validDrag) { if (dragargs.parentItem.parent != null) { AssetTreeItem <SpriteTrackData> itemdata = dragargs.parentItem as AssetTreeItem <SpriteTrackData>; if (itemdata != null && itemdata.GetData().ShowMode == SpriteShowMode.Atlas && itemdata.depth == 1) { OnDropDraggedElements(draggedRows, itemdata); } } } dragmd = validDrag ? DragAndDropVisualMode.Move : DragAndDropVisualMode.None; break; } case AssetDragAndDropArgs.DragAndDropPosition.OutsideItems: { dragmd = DragAndDropVisualMode.Move; break; } default: Debug.LogError("Unhandled enum " + dragargs.dragAndDropPosition); dragmd = DragAndDropVisualMode.None; break; } } else { dragmd = DragAndDropVisualMode.None; } }
public bool CellGui(TreeViewItem item, ref AssetRowGuiArgs args) { if (item is AssetTreeItem <SpriteTrackData> ) { AssetTreeItem <SpriteTrackData> trackItem = item as AssetTreeItem <SpriteTrackData>; GUI.skin.label.richText = true; SpriteTopMenu topMenu = (SpriteTopMenu)args.Column; SpriteTrackData data = trackItem.GetData(); if (topMenu == SpriteTopMenu.Name) { return(false); } else if (topMenu == SpriteTopMenu.Type) { if (data.ShowMode == SpriteShowMode.Scene) { GUI.Label(args.CellRect, "Scene"); } else if (data.ShowMode == SpriteShowMode.Prefabs) { GUI.Label(args.CellRect, "GameObject"); } else if (data.ShowMode == SpriteShowMode.Atlas) { GUI.Label(args.CellRect, "Atlas"); } } else if (topMenu == SpriteTopMenu.BundleName) { if (data.ShowMode == SpriteShowMode.Scene) { GUI.Label(args.CellRect, data.SceneData.SprData.BundleName); } else if (data.ShowMode == SpriteShowMode.Prefabs) { GUI.Label(args.CellRect, data.GameObjectData.SprData.BundleName); } else if (data.ShowMode == SpriteShowMode.Atlas) { GUI.Label(args.CellRect, data.AtlasData.SprData.BundleName); } } else if (topMenu == SpriteTopMenu.AtlasName) { if (data.ShowMode == SpriteShowMode.Scene) { if (item.depth == 2) { if (string.IsNullOrEmpty(data.SceneData.SprData.PackingTag) == false) { string newval = GUI.TextField(args.CellRect, data.SceneData.SprData.PackingTag); if (CheckTag(newval, data.SceneData.SprData.PackingTag)) { data.SceneData.SprData.Importer.spritePackingTag = newval; data.SceneData.SprData.PackingTag = newval; data.SceneData.SprData.Importer.SaveAndReimport(); trackItem.SetData(data); } } } } else if (data.ShowMode == SpriteShowMode.Prefabs) { if (item.depth == 3) { if (string.IsNullOrEmpty(data.GameObjectData.SprData.PackingTag) == false) { string newval = GUI.TextField(args.CellRect, data.GameObjectData.SprData.PackingTag); if (CheckTag(newval, data.GameObjectData.SprData.PackingTag)) { data.GameObjectData.SprData.Importer.spritePackingTag = newval; data.GameObjectData.SprData.PackingTag = newval; data.GameObjectData.SprData.Importer.SaveAndReimport(); trackItem.SetData(data); } } } } else if (data.ShowMode == SpriteShowMode.Atlas) { if (item.depth == 2) { if (string.IsNullOrEmpty(data.AtlasData.SprData.PackingTag) == false) { string newval = GUI.TextField(args.CellRect, data.AtlasData.SprData.PackingTag); if (CheckTag(newval, data.AtlasData.SprData.PackingTag)) { data.AtlasData.SprData.Importer.spritePackingTag = newval; data.AtlasData.SprData.PackingTag = newval; data.AtlasData.SprData.Importer.SaveAndReimport(); trackItem.SetData(data); } } } } } else if (topMenu == SpriteTopMenu.UsedCount) { if (item.depth > 0 && (data.ShowMode == SpriteShowMode.Scene || data.ShowMode == SpriteShowMode.Prefabs)) { GUI.Label(args.CellRect, data.UsedRefCount.ToString()); } } else if (topMenu == SpriteTopMenu.MemSize) { if (data.ShowMode == SpriteShowMode.Scene) { if (item.depth == 2) { GUI.Label(args.CellRect, "Spr:" + data.SceneData.SprData.MemSize + " Tex:" + data.SceneData.SprData.TexMemSize); } else if (item.depth > 0) { GUI.Label(args.CellRect, "Script:" + data.SceneData.MemSize); } } else if (data.ShowMode == SpriteShowMode.Prefabs) { if (item.depth == 3) { GUI.Label(args.CellRect, "Spr:" + data.GameObjectData.SprData.MemSize + " Tex:" + data.GameObjectData.SprData.TexMemSize); } else if (item.depth > 0) { GUI.Label(args.CellRect, "Go:" + data.GameObjectData.GoData.MemSize); } } else if (data.ShowMode == SpriteShowMode.Atlas) { if (item.depth == 2) { GUI.Label(args.CellRect, "Spr:" + data.AtlasData.SprData.MemSize + " Tex:" + data.AtlasData.SprData.TexMemSize); } else if (item.depth > 1) { GUI.Label(args.CellRect, "Ref:" + data.AtlasData.RefData.MemSize); } } } else if (topMenu == SpriteTopMenu.Size) { if (data.ShowMode == SpriteShowMode.Atlas) { if (data.AtlasData.SprData.Sprite != null) { GUI.Label(args.CellRect, data.AtlasData.SprData.TexSize.ToString()); } } } else if (topMenu == SpriteTopMenu.Info) { if (data.ShowMode == SpriteShowMode.Scene) { if (item.depth == 1) { if (data.SceneData.CsReferences) { GUI.Label(args.CellRect, string.Format("Type :{0} Path:{1} ", AssetBundleEditorHelper.GetColorText("{0}", Color.black, data.SceneData.CsReferences), AssetBundleEditorHelper.GetColorText("{0}", Color.white, data.SceneData.Path) )); } } else if (item.depth == 2) { if (data.SceneData.SprData.Sprite) { GUI.Label(args.CellRect, GetSprInfo(ref data.SceneData.SprData)); } } } else if (data.ShowMode == SpriteShowMode.Prefabs) { if (item.depth == 1) { GUI.Label(args.CellRect, string.Format("AssetPath :{0} Path:{1} PrefabType:{2}", AssetBundleEditorHelper.GetColorText("{0}", Color.black, data.GameObjectData.GoData.AssetPath), AssetBundleEditorHelper.GetColorText("{0}", Color.white, data.GameObjectData.GoData.Path), AssetBundleEditorHelper.GetColorText("{0}", Color.yellow, data.GameObjectData.GoData.PrefabType))); } else if (item.depth == 2) { GUI.Label(args.CellRect, GetSprInfo(ref data.GameObjectData.SprData)); } else if (item.depth == 3) { if (data.GameObjectData.SprData.Sprite) { GUI.Label(args.CellRect, GetSprInfo(ref data.GameObjectData.SprData)); } } } else if (data.ShowMode == SpriteShowMode.Atlas) { if (item.depth == 2) { if (data.AtlasData.SprData.Sprite) { GUI.Label(args.CellRect, GetSprInfo(ref data.AtlasData.SprData)); } } else if (item.depth == 3) { if (data.AtlasData.RefData.Target) { GUI.Label(args.CellRect, string.Format("{0} Path:{1}", AssetBundleEditorHelper.GetColorText("{0}", Color.black, data.AtlasData.RefData.Target), AssetBundleEditorHelper.GetColorText("{0}", Color.white, data.AtlasData.RefData.Path))); } } } } GUI.skin.label.richText = false; } else { return(false); } return(true); }