ILocalizeTarget.cs 1.2 KB

123456789101112131415161718192021222324252627282930313233343536
  1. using UnityEngine;
  2. namespace I2.Loc
  3. {
  4. public abstract class ILocalizeTarget : ScriptableObject
  5. {
  6. public abstract bool IsValid(Localize cmp);
  7. public abstract void GetFinalTerms( Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm);
  8. public abstract void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation);
  9. public abstract bool CanUseSecondaryTerm();
  10. public abstract bool AllowMainTermToBeRTL();
  11. public abstract bool AllowSecondTermToBeRTL();
  12. public abstract eTermType GetPrimaryTermType(Localize cmp);
  13. public abstract eTermType GetSecondaryTermType(Localize cmp);
  14. }
  15. public abstract class LocalizeTarget<T> : ILocalizeTarget where T : Object
  16. {
  17. public T mTarget;
  18. public override bool IsValid(Localize cmp)
  19. {
  20. if (mTarget!=null)
  21. {
  22. var mTargetCmp = mTarget as Component;
  23. if (mTargetCmp != null && mTargetCmp.gameObject != cmp.gameObject)
  24. mTarget = null;
  25. }
  26. if (mTarget==null)
  27. mTarget = cmp.GetComponent<T>();
  28. return mTarget!=null;
  29. }
  30. }
  31. }