AtlasReference.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. namespace AtlasUtility
  2. {
  3. using UnityEditor;
  4. public class AtlasReference
  5. {
  6. #region Variable
  7. public string GUID;
  8. public string FileID;
  9. public string Content;
  10. public string DebugPath
  11. {
  12. get
  13. {
  14. int spriteIndex = (int.Parse(FileID) - 21300000) / 2;
  15. string assetPath = AssetDatabase.GUIDToAssetPath(GUID);
  16. TextureImporter textureImporter = (TextureImporter)AssetImporter.GetAtPath(assetPath);
  17. return $"{assetPath}/{textureImporter.spritesheet[spriteIndex].name}";
  18. }
  19. }
  20. #endregion
  21. public AtlasReference(string content)
  22. {
  23. Content = content;
  24. GUID = content.Split(',')[1].Split(' ')[2];
  25. FileID = content.Split(',')[0].Split(' ')[1];
  26. }
  27. public AtlasReference(string fileID, string guid)
  28. {
  29. Content = $"fileID: {fileID}, guid: {guid}";
  30. GUID = guid;
  31. FileID = fileID;
  32. }
  33. public override int GetHashCode()
  34. {
  35. return Content.GetHashCode();
  36. }
  37. public override bool Equals(object obj)
  38. {
  39. if (obj == null)
  40. {
  41. return false;
  42. }
  43. AtlasReference atlasReference = obj as AtlasReference;
  44. if (atlasReference == null)
  45. {
  46. return false;
  47. }
  48. return Content == atlasReference.Content;
  49. }
  50. public static bool operator !=(AtlasReference reference1, AtlasReference reference2)
  51. {
  52. return !reference1.Equals(reference2);
  53. }
  54. public static bool operator ==(AtlasReference reference1, AtlasReference reference2)
  55. {
  56. return reference1.Equals(reference2);
  57. }
  58. }
  59. }