namespace AtlasUtility { using UnityEditor; using UnityEngine; using System.Collections.Generic; public class PlatformReferenceManager { public static void SwitchPlatform(Platform toPlatform) { List fromList = new List(); List toList = new List(); GetFromToList(toPlatform, fromList, toList); ReferenceManager.ChangeReference(true, fromList, toList); } public static void GetFromToList(Platform toPlatform, List fromList, List toList) { List referenceSetList = PlatformReferenceTable.ReadAllLine(); for (int i = 0; i < referenceSetList.Count; i++) { referenceSetList[i].SwitchPlatform(toPlatform, fromList, toList); } } public static void RemoveReference(List guidList) { List 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 referenceSetList = PlatformReferenceTable.ReadAllLine(); return GetMatchedReferenceSet(guid, referenceSetList); } public static PlatformReferenceSet GetMatchedReferenceSet(string guid, List 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; } } }