示例#1
0
    public static void AddSpriteCheckTools()
    {
        GameObject go = Selection.activeGameObject;

        if (go != null)
        {
            SpriteCheckTools temp = go.GetComponent <SpriteCheckTools>();
            if (temp == null)
            {
                go.AddComponent <SpriteCheckTools>();
            }
            else
            {
                Debug.Log("help you delete");
                DestroyImmediate(temp);
            }
        }
        else
        {
            GameFramework.Log.Info("You must select a game object first.");
        }
    }
示例#2
0
    public override void OnInspectorGUI()
    {
        DrawDefaultInspector();
        SpriteCheckTools self = (SpriteCheckTools)target;

        EditorGUILayout.BeginHorizontal();
        if (GUILayout.Button("Source Root Path", GUILayout.Width(116)))
        {
            self.sourceRootPath = EditorUtility.OpenFolderPanel("Select Path", Application.dataPath, "");
            _needRefresh        = true;
        }
        self.sourceRootPath = EditorGUILayout.TextField(self.sourceRootPath);
        EditorGUILayout.EndHorizontal();

        EditorGUILayout.Space();

        if (Directory.Exists(self.sourceRootPath))
        {
            if (GUILayout.Button("Find All Source"))
            {
                self.FindAllSource();
                _needRefresh = true;
            }


            EditorGUILayout.LabelField("Source Atlas : " + self.usefulAtlas.Count);
            if (self.usefulAtlas.Count > 0)
            {
                int usefulAtlasCount = self.usefulAtlas.Count;
                int row    = usefulAtlasCount / 3;
                int column = usefulAtlasCount % 3;
                if (column > 0)
                {
                    row++;
                }

                for (int i = 0; i < row; i++)
                {
                    EditorGUILayout.BeginHorizontal();
                    for (int j = 0; j < 3; j++)
                    {
                        int index = i * 3 + j;
                        if (index < usefulAtlasCount)
                        {
                            EditorGUILayout.ObjectField(self.usefulAtlas[index], typeof(GameObject), false, GUILayout.Width(110));
                        }
                    }
                    EditorGUILayout.EndHorizontal();
                }

                if (GUILayout.Button("Check Invalid Sprite"))
                {
                    self.CheckSpriteState();
                    _needRefresh = true;
                }

                if (self.todoList.Count > 0)
                {
                    for (int i = 0; i < self.todoList.Count; i++)
                    {
                        EditorGUILayout.BeginHorizontal();

                        EditorGUILayout.ObjectField(self.todoList[i].gameObject, typeof(GameObject), true, GUILayout.Width(110));
                        if (self.todoList[i].indexs.Count > 0)
                        {
                            EditorGUILayout.LabelField("------>", GUILayout.Width(50));
                            for (int j = 0; j < self.todoList[i].indexs.Count; j++)
                            {
                                int index = self.todoList[i].indexs[j];
                                if (GUILayout.Button(self.usefulAtlas[index].name, GUILayout.Width(90)))
                                {
                                    self.todoList[i].gameObject.GetComponent <UISprite>().atlas = self.usefulAtlas[self.todoList[i].indexs[j]];
                                    self.CheckSpriteState();
                                    _needRefresh = true;
                                }
                            }
                        }
                        else
                        {
                            EditorGUILayout.LabelField("without match atlas");
                        }


                        EditorGUILayout.EndHorizontal();
                    }

                    if (GUILayout.Button("One Key Replace Explicit Atlas"))
                    {
                        self.SwitchAtlas();
                        self.CheckSpriteState();
                        _needRefresh = true;
                    }
                }
            }
            else
            {
                EditorGUILayout.LabelField("without source");
            }
        }
        else
        {
            EditorGUILayout.LabelField("set useful source root path , please");
        }

        if (_needRefresh)
        {
            _needRefresh = false;
            OnInspectorGUI();
        }
    }