public static void RegisterTarget(ILocalizeTarget obj) { //Debug.Log("Register Target " + obj.GetType()); foreach (var t in mLocalizeTargets) { if (t.GetType() == obj.GetType()) { return; } } System.Array.Resize(ref mLocalizeTargets, mLocalizeTargets.Length + 1); mLocalizeTargets[mLocalizeTargets.Length - 1] = obj; }
public bool FindTarget() { if (mLocalizeTarget != null && mLocalizeTarget.IsValid(this)) { return(true); } if (mLocalizeTarget != null) { DestroyImmediate(mLocalizeTarget); mLocalizeTarget = null; mLocalizeTargetName = null; } if (!string.IsNullOrEmpty(mLocalizeTargetName)) { foreach (var desc in LocalizationManager.mLocalizeTargets) { if (mLocalizeTargetName == desc.GetTargetType().ToString()) { if (desc.CanLocalize(this)) { mLocalizeTarget = desc.CreateTarget(this); } if (mLocalizeTarget != null) { return(true); } } } } foreach (var desc in LocalizationManager.mLocalizeTargets) { if (!desc.CanLocalize(this)) { continue; } mLocalizeTarget = desc.CreateTarget(this); mLocalizeTargetName = desc.GetTargetType().ToString(); if (mLocalizeTarget != null) { return(true); } } return(false); }
public bool FindTarget() { if (HasTargetCache()) { return(true); } if (mLocalizeTarget == null || !mLocalizeTarget.FindTarget(this)) { mLocalizeTarget = null; foreach (var locTarget in LocalizationManager.mLocalizeTargets) { if (locTarget.FindTarget(this)) { mLocalizeTarget = locTarget.Clone(this); break; } } } return(HasTargetCache()); }