public bool Load <T1, T2>(T2 component, SetValue setValue) where T1 : ISave <T2> { if (component.CheckEmpty()) { return(false); } if (setValue.CheckEmpty()) { return(false); } ISave <T2> ISave = CreateISave <T1, T2>(); try { ISave.Load(component, setValue.Value); } catch (Exception ex) { Debug.LogError(ex); return(false); } return(true); }