123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163 |
- namespace AtlasUtility
- {
- using UnityEditor;
- using UnityEngine;
- using UnityEditor.SceneManagement;
- using System;
- using System.IO;
- using System.Linq;
- using System.Collections.Generic;
- using System.Text.RegularExpressions;
- public class AtlasReferenceManager
- {
- public static void ChangeReference(List<AtlasReference> fromReferenceList, List<AtlasReference> toReferenceList)
- {
- List<string> toList = new List<string>();
- List<string> fromList = new List<string>();
- for (int i = 0; i < toReferenceList.Count; i++)
- {
- toList.Add(toReferenceList[i].Content);
- }
- for (int i = 0; i < fromReferenceList.Count; i++)
- {
- fromList.Add(fromReferenceList[i].Content);
- }
- ReferenceManager.ChangeReference(false, fromList, toList);
- }
- public static void EnableAtlas()
- {
- List<AtlasReference> fromReferenceList = new List<AtlasReference>();
- List<AtlasReference> toReferenceList = new List<AtlasReference>();
- List<AtlasReferencePair> referencePairList = AtlasReferenceTable.ReadAllLine();
-
- for (int i = 0; i < referencePairList.Count; i++)
- {
- AtlasReference atlasReference = referencePairList[i].AtlasReference;
- AtlasReference sourceAtlasReference = referencePairList[i].SourceAtlasReference;
- if (fromReferenceList.Contains(sourceAtlasReference))
- {
- int index = fromReferenceList.IndexOf(sourceAtlasReference);
- Debug.LogWarning($"重复的Sprite {atlasReference.DebugPath} {toReferenceList[index].DebugPath}");
- }
- fromReferenceList.Add(sourceAtlasReference);
- toReferenceList.Add(atlasReference);
- }
- ChangeReference(fromReferenceList, toReferenceList);
- }
- public static void DisableAtlas()
- {
- List<AtlasReference> fromReferenceList = new List<AtlasReference>();
- List<AtlasReference> toReferenceList = new List<AtlasReference>();
- List<AtlasReferencePair> referencePairList = AtlasReferenceTable.ReadAllLine();
- for (int i = 0; i < referencePairList.Count; i++)
- {
- fromReferenceList.Add(referencePairList[i].AtlasReference);
- toReferenceList.Add(referencePairList[i].SourceAtlasReference);
- }
- ChangeReference(fromReferenceList, toReferenceList);
- }
- public static void GetEnableFromToList(List<string> fromList, List<string> toList)
- {
- List<AtlasReference> fromReferenceList = new List<AtlasReference>();
- List<AtlasReference> toReferenceList = new List<AtlasReference>();
- List<AtlasReferencePair> referencePairList = AtlasReferenceTable.ReadAllLine();
- for (int i = 0; i < referencePairList.Count; i++)
- {
- AtlasReference atlasReference = referencePairList[i].AtlasReference;
- AtlasReference sourceAtlasReference = referencePairList[i].SourceAtlasReference;
- if (fromReferenceList.Contains(sourceAtlasReference))
- {
- int index = fromReferenceList.IndexOf(sourceAtlasReference);
- Debug.LogWarning($"重复的Sprite {atlasReference.DebugPath} {toReferenceList[index].DebugPath}");
- }
- fromReferenceList.Add(sourceAtlasReference);
- toReferenceList.Add(atlasReference);
- }
- for (int i = 0; i < toReferenceList.Count; i++)
- {
- toList.Add(toReferenceList[i].Content);
- }
- for (int i = 0; i < fromReferenceList.Count; i++)
- {
- fromList.Add(fromReferenceList[i].Content);
- }
- }
- public static void GetDisableFromToList(List<string> fromList, List<string> toList)
- {
- List<AtlasReference> fromReferenceList = new List<AtlasReference>();
- List<AtlasReference> toReferenceList = new List<AtlasReference>();
- List<AtlasReferencePair> referencePairList = AtlasReferenceTable.ReadAllLine();
- for (int i = 0; i < referencePairList.Count; i++)
- {
- fromReferenceList.Add(referencePairList[i].AtlasReference);
- toReferenceList.Add(referencePairList[i].SourceAtlasReference);
- }
- for (int i = 0; i < toReferenceList.Count; i++)
- {
- toList.Add(toReferenceList[i].Content);
- }
- for (int i = 0; i < fromReferenceList.Count; i++)
- {
- fromList.Add(fromReferenceList[i].Content);
- }
- }
- public static List<AtlasReferencePair> GetReferencePair(List<string> atlasGuidList)
- {
- List<AtlasReferencePair> resultList = new List<AtlasReferencePair>();
- List<AtlasReferencePair> referencePairList = AtlasReferenceTable.ReadAllLine();
- foreach (string guid in atlasGuidList)
- {
- foreach (var referencePair in referencePairList)
- {
- if (referencePair.AtlasReference.GUID == guid)
- {
- resultList.Add(referencePair);
- }
- }
- }
- return resultList;
- }
- public static void RemoveReferencePair(List<AtlasReferencePair> referencePairList)
- {
- List<AtlasReferencePair> pairList = AtlasReferenceTable.ReadAllLine();
- pairList.RemoveRange(referencePairList);
- AtlasReferenceTable.WriteAllLine(pairList);
- }
- }
- }
|