private void DrawProductContent(ISN_SKProduct product) { product.ProductIdentifier = SA_EditorGUILayout.TextField(m_ProductIdDLabel, product.ProductIdentifier); product.LocalizedTitle = SA_EditorGUILayout.TextField(m_DisplayNameLabel, product.LocalizedTitle); product.Type = (ISN_SKProductType)SA_EditorGUILayout.EnumPopup(m_ProductTypeLabel, product.Type); product.PriceTier = (ISN_SKPriceTier)SA_EditorGUILayout.EnumPopup(m_PriceTierLabel, product.PriceTier); EditorGUILayout.LabelField(m_DescriptionLabel); using (new SA_GuiBeginHorizontal()) { product.LocalizedDescription = EditorGUILayout.TextArea(product.LocalizedDescription, GUILayout.Height(60), GUILayout.MinWidth(190)); EditorGUILayout.Space(); product.Icon = (Texture2D)EditorGUILayout.ObjectField("", product.Icon, typeof(Texture2D), false, GUILayout.Width(75)); } }
private void DrawProductContent(AN_Product product) { product.ProductId = SA_EditorGUILayout.TextField(ProductIdDLabel, product.ProductId); product.Title = SA_EditorGUILayout.TextField(DisplayNameLabel, product.Title); product.Type = (AN_ProductType)SA_EditorGUILayout.EnumPopup(ProductType, product.Type); product.IsConsumable = SA_EditorGUILayout.ToggleFiled(ConsumableLabel, product.IsConsumable, SA_StyledToggle.ToggleType.YesNo); product.Price = SA_EditorGUILayout.TextField(PriceLabel, product.Price); EditorGUILayout.LabelField(DescriptionLabel); using (new SA_GuiBeginHorizontal()) { product.Description = EditorGUILayout.TextArea(product.Description, GUILayout.Height(60), GUILayout.MinWidth(190)); EditorGUILayout.Space(); product.Icon = (Texture2D)EditorGUILayout.ObjectField("", product.Icon, typeof(Texture2D), false, GUILayout.Width(75)); } }
public override void OnGUI() { using (new SA_WindowBlockWithSpace(new GUIContent("Log Level"))) { EditorGUILayout.HelpBox("We recommend you to keep full logging level while your project in development mode. " + "Full communication logs between Native plugin part & " + "Unity side will be only available with Info logging level enabled. \n" + "Disabling the error logs isn't recommended.", MessageType.Info); using (new SA_GuiBeginHorizontal()) { var logLevel = AN_Settings.Instance.LogLevel; logLevel.Info = GUILayout.Toggle(logLevel.Info, Info, GUILayout.Width(80)); logLevel.Warning = GUILayout.Toggle(logLevel.Warning, Warnings, GUILayout.Width(100)); logLevel.Error = GUILayout.Toggle(logLevel.Error, Errors, GUILayout.Width(100)); } EditorGUILayout.Space(); EditorGUILayout.HelpBox("On some Android devices, Log.d or Log.e methods will not print anything to console," + "so sometimes the only ability to see the logs is to enable the WTF printing. This will make all" + "logs to be printed with Log.wtf method despite message log level.", MessageType.Info); AN_Settings.Instance.WTFLogging = GUILayout.Toggle(AN_Settings.Instance.WTFLogging, "WTF Logging", GUILayout.Width(130)); } using (new SA_WindowBlockWithSpace(new GUIContent("Environment Management"))) { EditorGUILayout.HelpBox("The Android Native plugin will alter manifest " + "automatically for your convenience. But in case you want to do it manually, " + "you may un-toggle the checkbox below \n" + "The plugin manifest is located under: " + AN_Settings.ANDROID_CORE_LIB_PATH, MessageType.Info); AN_Settings.Instance.ManifestManagement = SA_EditorGUILayout.ToggleFiled("Auto Manifest Management", AN_Settings.Instance.ManifestManagement, SA_StyledToggle.ToggleType.EnabledDisabled); EditorGUILayout.Space(); EditorGUILayout.HelpBox("The Android Resolver plugin will download and integrate Android library dependencies " + "and handle any conflicts between plugins that share the same dependencies. \n" + "The Resolver is an additional third-party plugin. You need to download, install and configure it" + "Before Android Native will able to rely on this plugin and disable internal libraries.", MessageType.Info); using (new SA_GuiBeginHorizontal()) { GUILayout.Label(UnityJarResolverText, GUILayout.MaxWidth(120)); if (AN_Settings.Instance.UseUnityJarResolver) { if (AN_Settings.Instance.UnityJarResolverVersion != null && AN_Settings.Instance.UnityJarResolverVersion.Length > 0) { UnityJarResolverState = new GUIContent("version " + AN_Settings.Instance.UnityJarResolverVersion, "Version of current Jar Resolver."); } else { UnityJarResolverState = new GUIContent("Enabled"); } } else { UnityJarResolverState = new GUIContent("Disabled"); } GUILayout.Label(UnityJarResolverState, GUILayout.MaxWidth(100)); GUILayout.FlexibleSpace(); GUIContent restartResolveContent = new GUIContent(" Restart Resolver", SA_Skin.GetGenericIcon("refresh.png")); var pressed = GUILayout.Button(restartResolveContent, new GUILayoutOption[2] { GUILayout.Width(140), GUILayout.Height(15) }); if (pressed) { AN_ResolveManager.ProcessAssets(); GUIUtility.ExitGUI(); } } using (new SA_GuiBeginHorizontal()) { GUILayout.FlexibleSpace(); var click = m_JarResolverLink.DrawWithCalcSize(); if (click) { Application.OpenURL(JAR_RESOLVER_DOC_LINK); } } } using (new SA_WindowBlockWithSpace("Storage")) { EditorGUILayout.HelpBox("When plugin needs to have a valid URI for an image, " + "it can be saved using the Internal or External storage. " + "In case saving attempt is failed, an alternative option will be used. " + "You can define if Internal or External storage should be a preferred option.", MessageType.Info); AN_Settings.Instance.PreferredImagesStorage = (AN_Settings.StorageType)SA_EditorGUILayout.EnumPopup("Preferred Images Storage", AN_Settings.Instance.PreferredImagesStorage); using (new SA_GuiBeginHorizontal()) { GUILayout.FlexibleSpace(); var click = m_StorageOptionsLink.DrawWithCalcSize(); if (click) { Application.OpenURL(STORAGE_OPTIONS_DOC_LINK); } } } using (new SA_WindowBlockWithSpace("Debug")) { EditorGUILayout.HelpBox("API Resolver's are normally launched with build pre-process stage", MessageType.Info); var pressed = GUILayout.Button("Start API Resolvers"); if (pressed) { SA_PluginsEditor.DisableLibstAtPath(AN_Settings.ANDROID_FOLDER_DISABLED); AN_Preprocessor.Resolve(); GUIUtility.ExitGUI(); } EditorGUILayout.HelpBox("Action will reset all of the plugin settings to default.", MessageType.Info); pressed = GUILayout.Button("Reset To Defaults"); if (pressed) { AN_Settings.Delete(); AN_Preprocessor.Resolve(); } } }
private void Entitlements() { Texture2D entitlements = SA_EditorAssets.GetTextureAtPath(ISD_Skin.ICONS_PATH + "entitlements.png"); using (new SA_WindowBlockWithIndent(new GUIContent("Entitlements", entitlements))) { EditorGUILayout.HelpBox("Entitlements confer specific capabilities or security permissions to your iOS or macOS app.\n" + "By default Entitlements file is generated based on your deploy settings, " + "but you may alos provide own version of the entitlements file by using manual mode", MessageType.Info); using (new SA_GuiBeginHorizontal()) { GUILayout.FlexibleSpace(); bool click = m_entitlementsLink.DrawWithCalcSize(); if (click) { Application.OpenURL("https://developer.apple.com/documentation/uikit/core_app/protecting_the_user_s_privacy?language=objc"); } } EditorGUILayout.Space(); ISD_Settings.Instance.EntitlementsMode = (ISD_EntitlementsGenerationMode)SA_EditorGUILayout.EnumPopup("Generation Mode", ISD_Settings.Instance.EntitlementsMode); if (ISD_Settings.Instance.EntitlementsMode == ISD_EntitlementsGenerationMode.Manual) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Entitlements File:"); ISD_Settings.Instance.EntitlementsFile = EditorGUILayout.ObjectField(ISD_Settings.Instance.EntitlementsFile, typeof(UnityEngine.Object), false); EditorGUILayout.EndHorizontal(); } } }
public void OnGUI() { var settins = UM_GoogleAdsSettings.Instance; using (new SA_GuiBeginHorizontal()) { GUILayout.FlexibleSpace(); var example = GUILayout.Button("Example", EditorStyles.miniButton, GUILayout.Width(80)); if (example) { FillExampleSettings(); } var click = GUILayout.Button("Dashboard", EditorStyles.miniButton, GUILayout.Width(80)); if (click) { Application.OpenURL("https://apps.admob.com/"); } } using (new SA_H2WindowBlockWithSpace(new GUIContent("IOS"))) { UM_AdvertisementUI.DrawPlatformIds(settins.IOSIds); } using (new SA_H2WindowBlockWithSpace(new GUIContent("ANDROID"))) { if (string.IsNullOrEmpty(settins.AndroidIds.AppId)) { EditorGUILayout.HelpBox("Application id MUST be provided on Android platform before you make a build. " + "Empty Application id may result in app crash on launch.", MessageType.Error); } UM_AdvertisementUI.DrawPlatformIds(settins.AndroidIds); } using (new SA_H2WindowBlockWithSpace(new GUIContent("SETTINGS"))) { #if SA_ADMOB_INSTALLED settins.BannerSize = (UM_GoogleBannerSize)SA_EditorGUILayout.EnumPopup("Banner Size", settins.BannerSize); settins.BannerPosition = (AdPosition)SA_EditorGUILayout.EnumPopup("Banner Position", settins.BannerPosition); #endif settins.NPA = SA_EditorGUILayout.ToggleFiled("Non-Personalized Ads", settins.TagForChildDirectedTreatment, SA_StyledToggle.ToggleType.YesNo); settins.TagForChildDirectedTreatment = SA_EditorGUILayout.ToggleFiled("Tag For Child Directed Treatment", settins.TagForChildDirectedTreatment, SA_StyledToggle.ToggleType.YesNo); ReorderableListGUI.Title("Test Devices"); ReorderableListGUI.ListField(settins.TestDevices, DrawTextFiled, () => { EditorGUILayout.LabelField("Configure your device as a test device."); }); EditorGUILayout.Space(); ReorderableListGUI.Title("Keywords"); ReorderableListGUI.ListField(settins.Keywords, DrawTextFiled, () => { EditorGUILayout.LabelField("Provide keywords to admob so the ads can be targeted."); }); EditorGUILayout.Space(); } if (GUI.changed) { UM_GoogleAdsSettings.Save(); } }