private List <LoaderInfo> FindLoadersInUse(PerBuildTargetGroupCache cachedItem) { var providerLoadersProperty = cachedItem.managerSettingsObject.FindProperty("m_ProviderLoaders"); List <LoaderInfo> loaderInUse = new List <LoaderInfo>(); for (int i = 0; i < providerLoadersProperty.arraySize; ++i) { var loaderInstance = providerLoadersProperty.GetArrayElementAtIndex(i).objectReferenceValue; var loaderInfo = m_AllProviderLoaderInfo.FirstOrDefault(x => x.instance == loaderInstance); if (loaderInfo != null) { loaderInUse.Add(loaderInfo); } } return(loaderInUse); }
private PerBuildTargetGroupCache GetOrCreateCachedItem(BuildTargetGroup group, PlayerIdentityGeneralSettings currentSettings) { PerBuildTargetGroupCache cachedItem; m_CachedLoadOrderUIs.TryGetValue(group, out cachedItem); if (cachedItem == null) { // Initialize the item cachedItem = new PerBuildTargetGroupCache { generalSettingsObject = new SerializedObject(currentSettings) }; var managerSettingsProperty = cachedItem.generalSettingsObject.FindProperty("m_LoaderManagerInstance"); if (managerSettingsProperty.objectReferenceValue == null) { // Create the manager settings var ms = CreateInstance <PlayerIdentityManagerSettings>(); AssetDatabase.AddObjectToAsset(ms, AssetDatabase.GetAssetOrScenePath(currentSettings)); managerSettingsProperty.objectReferenceValue = ms; cachedItem.generalSettingsObject.ApplyModifiedProperties(); } cachedItem.managerSettingsObject = new SerializedObject(managerSettingsProperty.objectReferenceValue); if (m_SelectedBackendLoaderInfo != null) { cachedItem.managerSettingsObject.FindProperty("m_BackendLoader").objectReferenceValue = m_SelectedBackendLoaderInfo.instance; } m_CachedLoadOrderUIs[group] = cachedItem; } else { cachedItem.generalSettingsObject.Update(); cachedItem.managerSettingsObject.Update(); } return(cachedItem); }
private SerializedProperty FindLoaderList(PerBuildTargetGroupCache cachedItem) { return(cachedItem.managerSettingsObject.FindProperty("m_ProviderLoaders")); }