コード例 #1
0
        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)
                });
            }
        }
コード例 #2
0
        private static void SendPlayModeEvent(BaseData data)
        {
            if (!EnableAnalytics())
            {
                return;
            }

            EditorAnalytics.SendEventWithLimit(k_EventName, data);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
 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()
         });
     }
 }
コード例 #5
0
 static void SendTopMenuProjectSettingsEvent()
 {
     EditorAnalytics.SendEventEditorGameService(new EditorGameServiceEvent
     {
         action        = "Project Settings",
         assembly_info = "",
         component     = "Top Menu",
         package       = "Unity Editor",
         package_ver   = ""
     });
 }
コード例 #6
0
        public static void SendSaveLoadEvent(ProfilerAnalyticsSaveLoadData data)
        {
            if (!EditorAnalytics.enabled)
            {
                return;
            }

            if (!profilerSaveLoadRegistered)
            {
                profilerSaveLoadRegistered = RegisterEvent(k_ProfilerSaveLoad);
            }

            EditorAnalytics.SendEventWithLimit(k_ProfilerSaveLoad, data);
        }
コード例 #7
0
        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);
                }
            }
        }
コード例 #8
0
        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()
                });
            }
        }
コード例 #9
0
        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);
        }
コード例 #10
0
        public static void StopCapture()
        {
            if (!Capturing)
            {
                return;
            }
            if (!EditorAnalytics.enabled)
            {
                return;
            }
            Capturing = false;

            if (!profilerCaptureRegistered)
            {
                profilerCaptureRegistered = RegisterEvent(k_ProfilerCapture);
            }

            EditorAnalytics.SendEventWithLimit(k_ProfilerCapture, Capture);
        }
コード例 #11
0
        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);
        }
コード例 #12
0
        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();
        }
コード例 #13
0
        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
            });
        }
コード例 #14
0
        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
                });
            }
        }
コード例 #15
0
        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);
        }
コード例 #16
0
        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
                });
            }
        }
コード例 #17
0
 internal static bool SendValidatePublicKeyEvent(object parameters)
 {
     return(EditorAnalytics.SendEvent("validatePublicKey", parameters));
 }
コード例 #18
0
 internal static bool SendOpenDashboardForService(object parameters)
 {
     return(EditorAnalytics.SendEvent("openDashboard", parameters));
 }
コード例 #19
0
 internal static bool SendOpenPackManFromServiceSettings(object parameters)
 {
     return(EditorAnalytics.SendEvent("openPackageManager", parameters));
 }
コード例 #20
0
 internal static bool SendImportServicePackageEvent(object parameters)
 {
     return(EditorAnalytics.SendEvent("importServicePackage", parameters));
 }
コード例 #21
0
 internal static bool SendEventEditorGameService(object parameters)
 {
     return(EditorAnalytics.SendEvent(k_EventName, parameters));
 }
コード例 #22
0
 internal static bool SendEventCloseServiceWindow(object parameters)
 {
     return(EditorAnalytics.SendEvent("closeService", parameters));
 }
コード例 #23
0
 internal static bool SendEventShowService(object parameters)
 {
     return(EditorAnalytics.SendEvent("showService", parameters));
 }
コード例 #24
0
 internal static bool SendEventServiceInfo(object parameters)
 {
     return(EditorAnalytics.SendEvent("serviceInfo", parameters));
 }
コード例 #25
0
 internal static bool SendEventBuildFrameworkList(object parameters)
 {
     return(EditorAnalytics.SendEvent("buildFrameworkList", parameters, SendEventOptions.kAppendBuildGuid | SendEventOptions.kAppendBuildTarget));
 }
コード例 #26
0
 internal static bool SendEventScriptableBuildPipelineInfo(object parameters)
 {
     return(EditorAnalytics.SendEvent("scriptableBuildPipeline", parameters));
 }
コード例 #27
0
 internal static bool SendCollabOperation(object parameters)
 {
     return(EditorAnalytics.SendEvent("collabOperation", parameters));
 }
コード例 #28
0
 internal static bool SendLaunchCloudBuildEvent(object parameters)
 {
     return(EditorAnalytics.SendEvent("launchCloudBuild", parameters));
 }
コード例 #29
0
 internal static bool SendClearAnalyticsDataEvent(object parameters)
 {
     return(EditorAnalytics.SendEvent("clearAnalyticsData", parameters));
 }
コード例 #30
0
 internal static bool SendEventSceneViewInfo(object parameters)
 {
     return(EditorAnalytics.SendEvent("sceneViewInfo", parameters));
 }