123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- using System;
- using UnityEngine;
- namespace I2.Loc
- {
- public class LocalizeTarget_UnityStandard_Prefab : LocalizeTarget<GameObject>
- {
- static LocalizeTarget_UnityStandard_Prefab()
- {
- LocalizeTarget_UnityStandard_Prefab.AutoRegister();
- }
- [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSceneLoad)]
- private static void AutoRegister()
- {
- LocalizationManager.RegisterTarget(new LocalizeTargetDesc_Prefab
- {
- Name = "Prefab",
- Priority = 250
- });
- }
- public override bool IsValid(Localize cmp)
- {
- return true;
- }
- public override eTermType GetPrimaryTermType(Localize cmp)
- {
- return eTermType.GameObject;
- }
- public override eTermType GetSecondaryTermType(Localize cmp)
- {
- return eTermType.Text;
- }
- public override bool CanUseSecondaryTerm()
- {
- return false;
- }
- public override bool AllowMainTermToBeRTL()
- {
- return false;
- }
- public override bool AllowSecondTermToBeRTL()
- {
- return false;
- }
- public override void GetFinalTerms(Localize cmp, string Main, string Secondary, out string primaryTerm, out string secondaryTerm)
- {
- primaryTerm = cmp.name;
- secondaryTerm = null;
- }
- public override void DoLocalize(Localize cmp, string mainTranslation, string secondaryTranslation)
- {
- if (string.IsNullOrEmpty(mainTranslation))
- {
- return;
- }
- if (this.mTarget && this.mTarget.name == mainTranslation)
- {
- return;
- }
- Transform transform = cmp.transform;
- string text = mainTranslation;
- int num = mainTranslation.LastIndexOfAny(LanguageSource.CategorySeparators);
- if (num >= 0)
- {
- text = text.Substring(num + 1);
- }
- Transform transform2 = this.InstantiateNewPrefab(cmp, mainTranslation);
- if (transform2 == null)
- {
- return;
- }
- transform2.name = text;
- for (int i = transform.childCount - 1; i >= 0; i--)
- {
- Transform child = transform.GetChild(i);
- if (child != transform2)
- {
- UnityEngine.Object.Destroy(child.gameObject);
- }
- }
- }
- private Transform InstantiateNewPrefab(Localize cmp, string mainTranslation)
- {
- GameObject gameObject = cmp.FindTranslatedObject<GameObject>(mainTranslation);
- if (gameObject == null)
- {
- return null;
- }
- GameObject mTarget = this.mTarget;
- this.mTarget = UnityEngine.Object.Instantiate<GameObject>(gameObject);
- if (this.mTarget == null)
- {
- return null;
- }
- Transform transform = cmp.transform;
- Transform transform2 = this.mTarget.transform;
- transform2.SetParent(transform);
- Transform transform3 = (!mTarget) ? transform : mTarget.transform;
- transform2.rotation = transform3.rotation;
- transform2.position = transform3.position;
- return transform2;
- }
- }
- }
|