Ejemplo n.º 1
0
        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();
            //}
        }
Ejemplo n.º 2
0
        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();
            }
        }
Ejemplo n.º 3
0
        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;
                }
            }
        }