ChangeAssetsToEnglish.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  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 ChangeAssetsToEnglish : MonoBehaviour
  11. {
  12. [MenuItem("Window/DCGO/Repair/Change Entity Names To English")]
  13. static void FixEntityNames()
  14. {
  15. List<CEntity_Base> List = GetAsset.LoadAll<CEntity_Base>("Assets/CardBaseEntity/");
  16. foreach (CEntity_Base card in List)
  17. {
  18. string assetName = card.name;
  19. string correctName = $"{FixCharactersInName($"{card.CardName_ENG.Replace(" ", "")}-{card.CardSpriteName}")}";
  20. if (assetName.Equals(correctName))
  21. continue;
  22. Debug.Log(assetName + " - " + correctName);
  23. AssetDatabase.RenameAsset(AssetDatabase.GetAssetPath(card), correctName);
  24. EditorUtility.SetDirty(card);
  25. }
  26. Debug.Log("All names changed in CardBaseEntity");
  27. return;
  28. //Parse ScriptableObject Name
  29. string FixCharactersInName(string str)
  30. {
  31. string name = str;
  32. name = name
  33. .Replace(" ", "_")
  34. .Replace(":", "")
  35. .Replace("?", "")
  36. .Replace("!", "")
  37. .Replace("<", "")
  38. .Replace(">", "");
  39. return name;
  40. }
  41. }
  42. }
  43. }