LocalizeTarget_UnityStandard_SpriteRenderer.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using UnityEditor;
  2. using UnityEngine;
  3. #pragma warning disable 618
  4. namespace I2.Loc
  5. {
  6. #if UNITY_EDITOR
  7. [InitializeOnLoad]
  8. #endif
  9. public class LocalizeTarget_UnityStandard_SpriteRenderer : LocalizeTarget<SpriteRenderer>
  10. {
  11. static LocalizeTarget_UnityStandard_SpriteRenderer() { AutoRegister(); }
  12. [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)] static void AutoRegister() { LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Type<SpriteRenderer, LocalizeTarget_UnityStandard_SpriteRenderer> { Name = "SpriteRenderer", Priority = 100 }); }
  13. public override eTermType GetPrimaryTermType(Localize cmp) { return eTermType.Sprite; }
  14. public override eTermType GetSecondaryTermType(Localize cmp) { return eTermType.Text; }
  15. public override bool CanUseSecondaryTerm() { return false; }
  16. public override bool AllowMainTermToBeRTL() { return false; }
  17. public override bool AllowSecondTermToBeRTL() { return false; }
  18. public override void GetFinalTerms ( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm)
  19. {
  20. Sprite sprite = mTarget.sprite;
  21. primaryTerm = sprite != null ? sprite.name : string.Empty;
  22. secondaryTerm = null;
  23. }
  24. public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation)
  25. {
  26. Sprite Old = mTarget.sprite;
  27. if (Old == null || Old.name != mainTranslation)
  28. mTarget.sprite = cmp.FindTranslatedObject<Sprite>(mainTranslation);
  29. // If the old value is not in the translatedObjects, then unload it as it most likely was loaded from Resources
  30. //if (!HasTranslatedObject(Old))
  31. // Resources.UnloadAsset(Old);
  32. }
  33. }
  34. }