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."); } }
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(); } }