public void OnPostprocessBuild(BuildReport report) { UnityEngine.Object[] array = Resources.FindObjectsOfTypeAll(typeof(SceneView)); int num = 0; UnityEngine.Object[] array2 = array; for (int i = 0; i < array2.Length; i++) { SceneView sceneView = (SceneView)array2[i]; if (sceneView.in2DMode) { num++; } } if (BuildEventsHandlerPostProcess.s_NumOfSceneViews != array.Length || BuildEventsHandlerPostProcess.s_NumOf2dSceneViews != num || !BuildEventsHandlerPostProcess.s_EventSent) { BuildEventsHandlerPostProcess.s_EventSent = true; BuildEventsHandlerPostProcess.s_NumOfSceneViews = array.Length; BuildEventsHandlerPostProcess.s_NumOf2dSceneViews = num; EditorAnalytics.SendEventSceneViewInfo(new SceneViewInfo { total_scene_views = BuildEventsHandlerPostProcess.s_NumOfSceneViews, num_of_2d_views = BuildEventsHandlerPostProcess.s_NumOf2dSceneViews, is_default_2d_mode = (EditorSettings.defaultBehaviorMode == EditorBehaviorMode.Mode2D) }); } }
private static void SendPlayModeEvent(BaseData data) { if (!EnableAnalytics()) { return; } EditorAnalytics.SendEventWithLimit(k_EventName, data); }
internal static bool RegisterEventEditorGameService() { const int maxEventsPerHour = 100; const int maxItems = 10; const string vendorKey = "unity.services.core.editor"; const int version = 1; var result = EditorAnalytics.RegisterEventWithLimit(k_EventName, maxEventsPerHour, maxItems, vendorKey, version); return(result == AnalyticsResult.Ok); }
public static void ReportPostBuildCompletionInfo(List <string> libraries) { if (libraries != null) { EditorAnalytics.SendEventBuildFrameworkList(new BuildLibrariesInfo() { ar_plugin_loaded = libraries.Contains("System/Library/Frameworks/ARKit.framework"), build_libraries = libraries.ToArray() }); } }
static void SendTopMenuProjectSettingsEvent() { EditorAnalytics.SendEventEditorGameService(new EditorGameServiceEvent { action = "Project Settings", assembly_info = "", component = "Top Menu", package = "Unity Editor", package_ver = "" }); }
public static void SendSaveLoadEvent(ProfilerAnalyticsSaveLoadData data) { if (!EditorAnalytics.enabled) { return; } if (!profilerSaveLoadRegistered) { profilerSaveLoadRegistered = RegisterEvent(k_ProfilerSaveLoad); } EditorAnalytics.SendEventWithLimit(k_ProfilerSaveLoad, data); }
static void CleanupPostprocessors() { if (m_PostprocessStack != null) { m_PostprocessStack.Pop(); m_ImportProcessors = m_PostprocessStack.Count > 0 ? m_PostprocessStack.Peek() : null; } if (s_AnalyticsEventsStack.Count > 0) { var lastEvent = s_AnalyticsEventsStack.Pop(); if (lastEvent.postProcessorCalls.Count > 0) { EditorAnalytics.SendAssetPostprocessorsUsage(lastEvent); } } }
private void ReportBuildTargetPermissions() { List <string> permissionsList = new List <string>(); List <string> featuresList = new List <string>(); string manifestFilePath = Path.Combine(s_StagingArea, s_AndroidManifest); if (EditorUserBuildSettings.androidBuildSystem == AndroidBuildSystem.Gradle) { manifestFilePath = (EditorUserBuildSettings.androidBuildType == AndroidBuildType.Release) ? Paths.Combine(s_GradlePath, "release", s_AndroidManifest) : Paths.Combine(s_GradlePath, "debug", s_AndroidManifest); } XmlDocument manifestFile = new XmlDocument(); if (File.Exists(manifestFilePath)) { manifestFile.Load(manifestFilePath); XmlNodeList permissions = manifestFile.GetElementsByTagName("uses-permission"); XmlNodeList features = manifestFile.GetElementsByTagName("uses-feature"); foreach (XmlNode permission in permissions) { XmlNode attribute = permission.Attributes ? ["android:name"]; if (attribute != null) { permissionsList.Add(attribute.Value); } } foreach (XmlNode feature in features) { XmlNode attribute = feature.Attributes ? ["android:name"]; if (attribute != null) { featuresList.Add(attribute.Value); } } EditorAnalytics.SendEventBuildTargetPermissions(new AndroidBuildPermissions() { features = featuresList.ToArray(), permissions = permissionsList.ToArray() }); } }
static bool EnableAnalytics() { if (!UnityEngine.Analytics.Analytics.enabled) { return(false); } if (!s_EventRegistered) { AnalyticsResult result = EditorAnalytics.RegisterEventWithLimit(k_EventName, k_MaxEventsPerHour, k_MaxNumberOfElements, k_VendorKey); if (result == AnalyticsResult.Ok) { s_EventRegistered = true; } } return(s_EventRegistered); }
public static void StopCapture() { if (!Capturing) { return; } if (!EditorAnalytics.enabled) { return; } Capturing = false; if (!profilerCaptureRegistered) { profilerCaptureRegistered = RegisterEvent(k_ProfilerCapture); } EditorAnalytics.SendEventWithLimit(k_ProfilerCapture, Capture); }
public static void SendConnectionEvent(ProfilerAnalyticsConnectionData data) { if (!EditorAnalytics.enabled) { return; } if (data.success) { data.connectionDetail = ProfilerDriver.GetConnectionIdentifier(ProfilerDriver.connectedProfiler); } if (!profilerConnectionRegistered) { profilerConnectionRegistered = RegisterEvent(k_ProfilerConnection); } EditorAnalytics.SendEventWithLimit(k_ProfilerConnection, data); }
static void CleanupPostprocessors() { if (m_PostprocessStack != null) { m_PostprocessStack.RemoveAt(m_PostprocessStack.Count - 1); if (m_PostprocessStack.Count != 0) { PostprocessStack postStack = (PostprocessStack)m_PostprocessStack[m_PostprocessStack.Count - 1]; m_ImportProcessors = postStack.m_ImportProcessors; } } if (s_AnalyticsEventsStack.Peek().postProcessorCalls.Count != 0) { EditorAnalytics.SendAssetPostprocessorsUsage(s_AnalyticsEventsStack.Peek()); } s_AnalyticsEventsStack.Pop(); }
public static void Download(string package_id, string url, string key, string package_name, string publisher_name, string category_name, AssetStoreUtils.DownloadDoneCallback doneCallback) { string[] dest = PackageStorePath(publisher_name, category_name, package_name, package_id, url); JSONValue existing = JSONParser.SimpleParse(AssetStoreUtils.CheckDownload(package_id, url, dest, key)); // If the package is actively being downloaded right now just return if (existing.Get("in_progress").AsBool(true)) { Debug.Log("Will not download " + package_name + ". Download is already in progress."); return; } // The package is not being downloaded. // If the package has previously been partially downloaded then // resume that download. string existingUrl = existing.Get("download.url").AsString(true); string existingKey = existing.Get("download.key").AsString(true); bool resumeOK = (existingUrl == url && existingKey == key); JSONValue download = new JSONValue(); download["url"] = url; download["key"] = key; JSONValue parameters = new JSONValue(); parameters["download"] = download; AssetStoreUtils.Download(package_id, url, dest, key, parameters.ToString(), resumeOK, doneCallback); EditorAnalytics.SendAssetDownloadEvent(new DownloadAssetInfo() { package_id = package_id, package_name = package_name, publisher_name = publisher_name, category_name = category_name }); }
private void ReportBuildPackageIds(BuildFile[] buildFiles) { List <string> managedLibraries = new List <string>(); foreach (BuildFile file in buildFiles) { if (file.role == "ManagedLibrary") { managedLibraries.Add(file.path); } } var matchingPackages = Packages.GetForAssemblyFilePaths(managedLibraries); var packageIds = matchingPackages.Select(item => item.packageId).ToArray(); if (packageIds.Length > 0) { EditorAnalytics.SendEventBuildPackageList(new BuildPackageIds() { package_ids = packageIds }); } }
public static void OnProfilerWindowDestroy() { ProfilerSession.time = EditorApplication.timeSinceStartup - ProfilerSession.time; if (!EditorAnalytics.enabled) { return; } if (!profilerElementUsabilityRegistered) { profilerElementUsabilityRegistered = RegisterEvent(k_ProfilerElementUsability); } // no interaction during session if (ProfilerSession.keyboardEvents == 0 && ProfilerSession.mouseEvents == 0) { return; } SwitchActiveView(CurrentView.element); ProfilerSession.session = Views.ToArray(); EditorAnalytics.SendEventWithLimit(k_ProfilerElementUsability, ProfilerSession); }
private void ReportSceneViewInfo() { Object[] views = Resources.FindObjectsOfTypeAll(typeof(SceneView)); int numOf2dSceneViews = 0; foreach (SceneView view in views) { if (view.in2DMode) { numOf2dSceneViews++; } } if ((s_NumOfSceneViews != views.Length) || (s_NumOf2dSceneViews != numOf2dSceneViews) || !s_EventSent) { s_EventSent = true; s_NumOfSceneViews = views.Length; s_NumOf2dSceneViews = numOf2dSceneViews; EditorAnalytics.SendEventSceneViewInfo(new SceneViewInfo() { total_scene_views = s_NumOfSceneViews, num_of_2d_views = s_NumOf2dSceneViews, is_default_2d_mode = EditorSettings.defaultBehaviorMode == EditorBehaviorMode.Mode2D }); } }
internal static bool SendValidatePublicKeyEvent(object parameters) { return(EditorAnalytics.SendEvent("validatePublicKey", parameters)); }
internal static bool SendOpenDashboardForService(object parameters) { return(EditorAnalytics.SendEvent("openDashboard", parameters)); }
internal static bool SendOpenPackManFromServiceSettings(object parameters) { return(EditorAnalytics.SendEvent("openPackageManager", parameters)); }
internal static bool SendImportServicePackageEvent(object parameters) { return(EditorAnalytics.SendEvent("importServicePackage", parameters)); }
internal static bool SendEventEditorGameService(object parameters) { return(EditorAnalytics.SendEvent(k_EventName, parameters)); }
internal static bool SendEventCloseServiceWindow(object parameters) { return(EditorAnalytics.SendEvent("closeService", parameters)); }
internal static bool SendEventShowService(object parameters) { return(EditorAnalytics.SendEvent("showService", parameters)); }
internal static bool SendEventServiceInfo(object parameters) { return(EditorAnalytics.SendEvent("serviceInfo", parameters)); }
internal static bool SendEventBuildFrameworkList(object parameters) { return(EditorAnalytics.SendEvent("buildFrameworkList", parameters, SendEventOptions.kAppendBuildGuid | SendEventOptions.kAppendBuildTarget)); }
internal static bool SendEventScriptableBuildPipelineInfo(object parameters) { return(EditorAnalytics.SendEvent("scriptableBuildPipeline", parameters)); }
internal static bool SendCollabOperation(object parameters) { return(EditorAnalytics.SendEvent("collabOperation", parameters)); }
internal static bool SendLaunchCloudBuildEvent(object parameters) { return(EditorAnalytics.SendEvent("launchCloudBuild", parameters)); }
internal static bool SendClearAnalyticsDataEvent(object parameters) { return(EditorAnalytics.SendEvent("clearAnalyticsData", parameters)); }
internal static bool SendEventSceneViewInfo(object parameters) { return(EditorAnalytics.SendEvent("sceneViewInfo", parameters)); }