CleanUpClassName.cs 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using UnityEditor.SceneManagement;
  5. using UnityEditor;
  6. using UnityEngine;
  7. using UnityEngine.SceneManagement;
  8. using DCGO.CardEntities;
  9. namespace DCGO.Tools.Repair{
  10. public class CleanUpClassName : MonoBehaviour
  11. {
  12. [MenuItem("Window/DCGO/Repair/Fix Entity Class Names")]
  13. static void FixEntityClassNames()
  14. {
  15. List<CEntity_Base> List = GetAsset.LoadAll<CEntity_Base>("Assets/CardBaseEntity/");
  16. foreach (CEntity_Base card in List)
  17. {
  18. card.CardEffectClassName = FixCharactersInClassName(card.CardEffectClassName);
  19. EditorUtility.SetDirty(card);
  20. }
  21. Debug.Log("Fixed all class names in CardBaseEntity");
  22. return;
  23. //Parse ScriptableObject Class Name
  24. string FixCharactersInClassName(string str)
  25. {
  26. string name = str;
  27. name = FixCharactersInName(name);
  28. name = name
  29. .Replace("-", "_")
  30. .Replace(".", "")
  31. .Replace("'", "")
  32. .Replace("&", "And")
  33. .Replace("(", "")
  34. .Replace(")", "");
  35. return name;
  36. }
  37. //Parse ScriptableObject Name
  38. string FixCharactersInName(string str)
  39. {
  40. string name = str;
  41. name = name
  42. .Replace(" ", "_")
  43. .Replace(":", "")
  44. .Replace("?", "")
  45. .Replace("!", "")
  46. .Replace("<", "")
  47. .Replace(">", "");
  48. return name;
  49. }
  50. }
  51. }
  52. }