namespace AtlasUtility { using UnityEditor; public class AtlasReference { #region Variable public string GUID; public string FileID; public string Content; public string DebugPath { get { int spriteIndex = (int.Parse(FileID) - 21300000) / 2; string assetPath = AssetDatabase.GUIDToAssetPath(GUID); TextureImporter textureImporter = (TextureImporter)AssetImporter.GetAtPath(assetPath); return $"{assetPath}/{textureImporter.spritesheet[spriteIndex].name}"; } } #endregion public AtlasReference(string content) { Content = content; GUID = content.Split(',')[1].Split(' ')[2]; FileID = content.Split(',')[0].Split(' ')[1]; } public AtlasReference(string fileID, string guid) { Content = $"fileID: {fileID}, guid: {guid}"; GUID = guid; FileID = fileID; } public override int GetHashCode() { return Content.GetHashCode(); } public override bool Equals(object obj) { if (obj == null) { return false; } AtlasReference atlasReference = obj as AtlasReference; if (atlasReference == null) { return false; } return Content == atlasReference.Content; } public static bool operator !=(AtlasReference reference1, AtlasReference reference2) { return !reference1.Equals(reference2); } public static bool operator ==(AtlasReference reference1, AtlasReference reference2) { return reference1.Equals(reference2); } } }