Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 private SerializedProperty FindLoaderList(PerBuildTargetGroupCache cachedItem)
 {
     return(cachedItem.managerSettingsObject.FindProperty("m_ProviderLoaders"));
 }