Esempio n. 1
0
        private static void ImportAllPackages()
        {
            // Check to see if we should run the external package importer. This will be reset when Ads is upgraded.
            bool ShouldRunPackageImporter = false;
            PackageImporterStatus packageImporterStatus = new PackageImporterStatus();
            string packageImporterStatusPath            = Application.dataPath + "/" + k_PackageImporterStatus;

            // If there is no JSON file, create one. Otherwise, fetch values from the file.
            if (!File.Exists(packageImporterStatusPath))
            {
                ShouldRunPackageImporter = true;
            }
            else
            {
                string jsonString = File.ReadAllText(packageImporterStatusPath);
                packageImporterStatus = JsonUtility.FromJson <PackageImporterStatus>(jsonString);
                if (packageImporterStatus != null)
                {
                    ShouldRunPackageImporter = packageImporterStatus.shouldRunPackageImporter;
                }
            }

            if (ShouldRunPackageImporter)
            {
                bool DoNotAskAgainIAP = false;
                // Fetch the external package installation data
                ExternalPackageInstallationData externalPackageInstallationData = new ExternalPackageInstallationData();
                string externalPackageInstallationDataPath = Application.dataPath + "/" + k_ExternalPackageInstallationData;
                // If there is no JSON file, create one. Otherwise, fetch values from the file.
                if (!File.Exists(externalPackageInstallationDataPath))
                {
                    DoNotAskAgainIAP = false;
                }
                else
                {
                    string jsonString = File.ReadAllText(externalPackageInstallationDataPath);
                    externalPackageInstallationData = JsonUtility.FromJson <ExternalPackageInstallationData>(jsonString);
                    if (externalPackageInstallationData != null)
                    {
                        DoNotAskAgainIAP = externalPackageInstallationData.doNotAskAgainIAP;
                    }
                }

                // If the user has not selected "Don't ask me again" for IAP, and doesn't have IAP installed, prompt them.
                if (!DoNotAskAgainIAP)
                {
                    InstallIAPPackage(externalPackageInstallationData);
                }

                // -------- Install logic for other packages here!


                packageImporterStatus.shouldRunPackageImporter = false;

                // Write the updated values to our JSON files.
                string packageImporterStatusJsonString = JsonUtility.ToJson(packageImporterStatus);
                File.WriteAllText(packageImporterStatusPath, packageImporterStatusJsonString);
                WriteExternalPackageInstallationDataToDisk(externalPackageInstallationData);
            }
        }
Esempio n. 2
0
        private static void WriteExternalPackageInstallationDataToDisk(ExternalPackageInstallationData externalPackageInstallationData)
        {
            string externalPackageInstallationDataPath       = Application.dataPath + "/" + k_ExternalPackageInstallationData;
            string externalPackageInstallationDataJsonString = JsonUtility.ToJson(externalPackageInstallationData);

            File.WriteAllText(externalPackageInstallationDataPath, externalPackageInstallationDataJsonString);
        }
Esempio n. 3
0
        private static void InstallIAPPackage(ExternalPackageInstallationData externalPackageInstallationData)
        {
            bool IsIAPInstalled = IsExternalPackageInstalled(s_IAPGuids);

            if (!IsIAPInstalled)
            {
                int option;
                if (RunningInBatchMode)
                {
                    Debug.Log("Preparing to install the IAP asset package...");
                    option = 0;
                }
                else
                {
                    option = EditorUtility.DisplayDialogComplex("Install Unity IAP",
                                                                "Unity Ads works best with an In-App Purchasing solution." + System.Environment.NewLine +
                                                                "Download and install Unity IAP (recommended)?" + System.Environment.NewLine +
                                                                "You can always do this from the Services window later.",
                                                                "Install Unity IAP",
                                                                "Not now",
                                                                "Don't ask me again");
                }
                switch (option)
                {
                // Install Unity IAP
                case 0:
                {
                    s_PackageImporter.DownloadAndImportPackage(k_IAPDownloadUrl, RunningInBatchMode);

                    s_PackageImporter.DownloadPackageData(k_AssetStoreInfo + k_IAPAssetStoreId, (bool packageDataAvailable, string packagedata) =>
                        {
                            if (packageDataAvailable)
                            {
                                externalPackageInstallationData.IAPInfo = packagedata;
                                // Write to disk
                                WriteExternalPackageInstallationDataToDisk(externalPackageInstallationData);
                            }
                        });
                    break;
                }

                // Not now
                case 1:
                {
                    // No-op.
                    break;
                }

                // Don't ask me again
                case 2:
                {
                    externalPackageInstallationData.doNotAskAgainIAP = true;
                    break;
                }

                default:
                {
                    Debug.LogError("Unrecognized option!");
                    break;
                }
                }
            }
        }