123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- namespace AtlasUtility
- {
- using UnityEditor;
- using UnityEngine;
- using System.Collections.Generic;
- public class PlatformReferenceManager
- {
- public static void SwitchPlatform(Platform toPlatform)
- {
- List<string> fromList = new List<string>();
- List<string> toList = new List<string>();
- GetFromToList(toPlatform, fromList, toList);
- ReferenceManager.ChangeReference(true, fromList, toList);
- }
- public static void GetFromToList(Platform toPlatform, List<string> fromList, List<string> toList)
- {
- List<PlatformReferenceSet> referenceSetList = PlatformReferenceTable.ReadAllLine();
- for (int i = 0; i < referenceSetList.Count; i++)
- {
- referenceSetList[i].SwitchPlatform(toPlatform, fromList, toList);
- }
- }
- public static void RemoveReference(List<string> guidList)
- {
- List<PlatformReferenceSet> platformSetList = PlatformReferenceTable.ReadAllLine();
- for (int i = 0; i < platformSetList.Count; i++)
- {
- if (guidList.Contains(platformSetList[i].MobileReference.GUID))
- {
- platformSetList[i].MobileReference.GUID = "None";
- }
- if (guidList.Contains(platformSetList[i].DesktopReference.GUID))
- {
- platformSetList[i].DesktopReference.GUID = "None";
- }
- if (guidList.Contains(platformSetList[i].EditorReference.GUID))
- {
- platformSetList[i].EditorReference.GUID = "None";
- AssetDatabase.DeleteAsset(platformSetList[i].MobileReference.Path);
- AssetDatabase.DeleteAsset(platformSetList[i].DesktopReference.Path);
- AssetDatabase.Refresh();
- }
- if (!platformSetList[i].Valid)
- {
- platformSetList.RemoveAt(i--);
- }
- }
- PlatformReferenceTable.WriteAllLine(platformSetList);
- }
- public static PlatformReferenceSet GetMatchedReferenceSet(Texture2D texture)
- {
- string guid = AssetDatabase.AssetPathToGUID(AssetDatabase.GetAssetPath(texture));
- List<PlatformReferenceSet> referenceSetList = PlatformReferenceTable.ReadAllLine();
- return GetMatchedReferenceSet(guid, referenceSetList);
- }
- public static PlatformReferenceSet GetMatchedReferenceSet(string guid, List<PlatformReferenceSet> referenceSetList)
- {
- for (int i = 0; i < referenceSetList.Count; i++)
- {
- if (referenceSetList[i].MobileReference.GUID == guid || referenceSetList[i].DesktopReference.GUID == guid || referenceSetList[i].EditorReference.GUID == guid)
- {
- return referenceSetList[i];
- }
- }
- return null;
- }
- }
- }
|