/// <summary> /// 读取内存中的存档值 /// </summary> /// <typeparam name="T1">赋值操作对象类型。</typeparam> /// <typeparam name="T2">你希望保存组件对象类型 /// 请务必保证该类型中的泛型,是你希望保存组件对象类型</typeparam> /// <param name="gameObject">gameObject</param> /// <param name="sceneName">场景名,不填为当前场景</param> /// <returns></returns> public static bool LoadComponent <T1, T2>(this GameObject gameObject, string sceneName = "") where T1 : ISave <T2> where T2 : UnityEngine.Component { if (gameObject.CheckEmpty()) { return(false); } T2 component = gameObject.GetComponent <T2>(); if (component.CheckEmpty()) { return(false); } SaveObject saveObject = GameSaveUtility.GetSaveObjectData(gameObject.name, sceneName); SetValue setValue = GameSaveUtility.GetComponentSetValue <T1, T2>(gameObject, saveObject); if (null == setValue) { return(false); } bool result = gameSaveSystem.Load <T1, T2>(component, setValue); return(result); }