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); }
/// <summary> /// Export to given multi id /// </summary> public void AddToSdkComponentList(int id) { Multis.Add(id, ConvertToSdk()); Options.ChangedUltimaClass["Multis"] = true; ControlEvents.FireMultiChangeEvent(this, id); }