1234567891011121314151617181920212223242526272829303132333435363738394041 |
- using System.Collections.Generic;
- using UnityEngine;
- namespace I2.Loc
- {
- public abstract class ILocalizeTargetDescriptor
- {
- public string Name;
- public int Priority;
- public abstract bool CanLocalize(Localize cmp);
- public abstract ILocalizeTarget CreateTarget(Localize cmp);
- public abstract System.Type GetTargetType();
- }
- public abstract class LocalizeTargetDesc<T> : ILocalizeTargetDescriptor where T : ILocalizeTarget
- {
- public override ILocalizeTarget CreateTarget(Localize cmp) { return ScriptableObject.CreateInstance<T>(); }
- public override System.Type GetTargetType() { return typeof(T); }
- }
- public class LocalizeTargetDesc_Type<T,G> : LocalizeTargetDesc<G> where T: Object
- where G: LocalizeTarget<T>
- {
- public override bool CanLocalize(Localize cmp) { return cmp.GetComponent<T>() != null; }
- public override ILocalizeTarget CreateTarget(Localize cmp)
- {
- var target = cmp.GetComponent<T>();
- if (target == null)
- return null;
- var locTarget = ScriptableObject.CreateInstance<G>();
- locTarget.mTarget = target;
- return locTarget;
- }
- }
- }
|