public static GenericMultiDati <TActual, TImpl> GetMultiAtId(string multiId)
        {
            if (string.IsNullOrEmpty(multiId))
            {
                return(null);
            }

            var implType = typeof(TImpl);

            if (Multis.ContainsKey(implType))
            {
                if (Multis[implType].ContainsKey(multiId))
                {
                    var multiObjes = Multis[implType];
                    var multiObj   = (GenericMultiDati <TActual, TImpl>)multiObjes[multiId];
                    if (multiObj == null)
                    {
                        Multis[implType].Remove(multiId);
                    }
                    else
                    {
                        return(multiObj);
                    }
                }
            }
            else
            {
                Multis.Add(implType, new Dictionary <string, object>());
            }

            GenericMultiDati <TActual, TImpl> multiInstance = null;

#if UNITY_EDITOR
            multiInstance = GetMultiOriginAtEditor(implType, multiId);
#else
            multiInstance = GetMultiOriginAtPlay(implType, multiId);
#endif
            currentInstance = multiInstance;

            Multis[implType].Add(multiId, multiInstance);
#if UNITY_EDITOR
            multiInstance?.LoadDetailHelp();
#endif
            return(multiInstance);
        }
Exemple #2
0
 /// <summary>
 /// Export to given multi id
 /// </summary>
 public void AddToSdkComponentList(int id)
 {
     Multis.Add(id, ConvertToSdk());
     Options.ChangedUltimaClass["Multis"] = true;
     ControlEvents.FireMultiChangeEvent(this, id);
 }