public class ThreeDayChallengeManager : ScriptableObject
{
public ThreeDayChallenge[] m_arrayItem;
private Dictionary<int, ThreeDayChallenge> m_dic = new Dictionary<int, ThreeDayChallenge>();
public static ThreeDayChallengeManager LoadConfig()
{
ThreeDayChallengeManager result = Resources.Load<ThreeDayChallengeManager>("DataAssets/" + nameof(ThreeDayChallenge));
result.FillData();
return result;
}
....
}
public static class LazyLoader<T> where T: ScriptableObject
{
private static T _manager;
public static T LoadManager(Func<T> loader)
{
if (_manager == null)
_manager = loader();
return _manager;
}
}
public ThreeDayChallengeManager threeDayChallengeManager
=> LazyLoader<ThreeDayChallengeManager>.LoadManager(ThreeDayChallengeManager.LoadConfig);
(004)c# 延迟加载
于 2023-10-08 20:21:26 首次发布