protected override void Draw(Rect r) { var drawR = r; drawR.xMin -= 16f; asset.Draw(drawR, false, false); var bRect = r; bRect.xMin += bRect.width - 50f; if (GUI.Button(bRect, "Use", EditorStyles.miniButton)) { EditorGUIUtility.systemCopyBuffer = asset.guid; Selection.objects = (parent as FR2_DuplicateFolder).children.Select( a => FR2_Unity.LoadAssetAtPath <Object>(((FR2_DuplicateAsset)a).asset.assetPath) ).ToArray(); FR2_Export.MergeDuplicate(); } //if (GUI.Button(bRect, "Remove Others", EditorStyles.miniButton)) //{ // EditorGUIUtility.systemCopyBuffer = asset.guid; // Selection.objects = (parent as FR2_DuplicateFolder).children.Select( // a => FR2_Unity.LoadAssetAtPath<Object>(((FR2_DuplicateAsset)a).asset.assetPath) // ).ToArray(); // FR2_Export.MergeDuplicate(); //} }
private void DrawGUIDs() { var ids = FR2_Unity.Selection_AssetGUIDs; var objs = Selection.objects; GUILayout.Label("GUID to Object", EditorStyles.boldLabel); GUILayout.BeginHorizontal(); { var guid = EditorGUILayout.TextField(tempGUID ?? string.Empty); EditorGUILayout.ObjectField(tempObject, typeof(Object), false, GUILayout.Width(120f)); if (GUILayout.Button("Paste", EditorStyles.miniButton, GUILayout.Width(70f))) { guid = EditorGUIUtility.systemCopyBuffer; } if (guid != tempGUID && !string.IsNullOrEmpty(guid)) { tempGUID = guid; tempObject = FR2_Unity.LoadAssetAtPath <Object> ( AssetDatabase.GUIDToAssetPath(tempGUID) ); } } GUILayout.EndHorizontal(); GUILayout.Space(10f); //GUILayout.Label("Selection", EditorStyles.boldLabel); if (ids.Length == objs.Length) { scrollPos = GUILayout.BeginScrollView(scrollPos); { for (var i = 0; i < ids.Length; i++) { GUILayout.BeginHorizontal(); { EditorGUILayout.ObjectField(objs[i], typeof(Object), false); var idi = ids[i]; GUILayout.TextField(idi, GUILayout.Width(240f)); if (GUILayout.Button("Copy", EditorStyles.miniButton, GUILayout.Width(50f))) { EditorGUIUtility.systemCopyBuffer = idi; //Debug.Log(EditorGUIUtility.systemCopyBuffer); } } GUILayout.EndHorizontal(); } } GUILayout.EndScrollView(); } GUILayout.FlexibleSpace(); if (GUILayout.Button("Merge Selection")) { FR2_Export.MergeDuplicate(); } }
private void DrawAsset(Rect r, string guid) { FR2_Ref rf; if (!refs.TryGetValue(guid, out rf)) { return; } if (rf.depth == 1) //mode != Mode.Dependency && { Color c = GUI.color; GUI.color = Color.blue; GUI.DrawTexture(new Rect(r.x - 4f, r.y + 2f, 2f, 2f), EditorGUIUtility.whiteTexture); GUI.color = c; } rf.asset.Draw(r, false, FR2_Setting.GroupMode != FR2_RefDrawer.Mode.Folder, window, false); Texture tex = AssetDatabase.GetCachedIcon(rf.asset.assetPath); if (tex == null) { return; } Rect drawR = r; drawR.x = drawR.x + drawR.width - 60f; // (groupDrawer.TreeNoScroll() ? 60f : 70f) ; drawR.width = 40f; drawR.y += 1; drawR.height -= 2; if (GUI.Button(drawR, "Use", EditorStyles.miniButton)) { if (FR2_Export.IsMergeProcessing) { Debug.LogWarning("Previous merge is processing"); } else { AssetDatabase.SaveAssets(); EditorGUIUtility.systemCopyBuffer = rf.asset.guid; EditorGUIUtility.systemCopyBuffer = rf.asset.guid; // Debug.Log("guid: " + rf.asset.guid + " systemCopyBuffer " + EditorGUIUtility.systemCopyBuffer); int index = rf.index; Selection.objects = list.Where(x => x.index == index) .Select(x => FR2_Unity.LoadAssetAtPath <Object>(x.asset.assetPath)).ToArray(); FR2_Export.MergeDuplicate(); } } if (rf.asset.UsageCount() > 0) { return; } drawR.x -= 25; drawR.width = 20; if (wasPreDelete(guid)) { Color col = GUI.color; GUI.color = Color.red; if (GUI.Button(drawR, "X", EditorStyles.miniButton)) { guidPressDelete = null; AssetDatabase.DeleteAsset(rf.asset.assetPath); } GUI.color = col; window.WillRepaint = true; } else { if (GUI.Button(drawR, "X", EditorStyles.miniButton)) { guidPressDelete = guid; TimePressDelete = Time.realtimeSinceStartup; window.WillRepaint = true; } } }