No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BuildHook.cs 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. using System;
  2. using System.Linq;
  3. using UnityEditor.AdaptivePerformance.Editor.Metadata;
  4. using UnityEditor.Build;
  5. using UnityEditor.Build.Reporting;
  6. using UnityEngine;
  7. using UnityEngine.AdaptivePerformance;
  8. using UnityEngine.SceneManagement;
  9. namespace UnityEditor.AdaptivePerformance.Editor.Analytics.Hooks
  10. {
  11. class BuildHook : IProcessSceneWithReport
  12. {
  13. int IOrderedCallback.callbackOrder => 1;
  14. void IProcessSceneWithReport.OnProcessScene(Scene scene, BuildReport report)
  15. {
  16. if (report == null)
  17. return;
  18. AdaptivePerformanceAnalytics.UsageAnalyticEvent.Send(new AdaptivePerformanceUsageAnalyticsArgs(
  19. eventType: AdaptivePerformanceUsageAnalyticsArgs.EventType.BuildPlayer,
  20. buildGuid: report.summary.guid,
  21. targetPlatform: report.summary.platform,
  22. targetPlatformVersion: GetTargetPlatformVersion(report.summary.platform),
  23. apProvidersInfo: GetInstalledProviders(report.summary.platformGroup)));
  24. }
  25. string GetTargetPlatformVersion(BuildTarget buildTarget)
  26. {
  27. // only supporting Android right now
  28. if (buildTarget != BuildTarget.Android)
  29. return null;
  30. var settings = PlayerSettings.Android.targetSdkVersion;
  31. return settings.ToString();
  32. }
  33. AdaptivePerformanceUsageAnalyticsArgs.AdaptivePerformanceInfo[] GetInstalledProviders(BuildTargetGroup buildTarget)
  34. {
  35. var loaders = AdaptivePerformancePackageMetadataStore.GetLoadersForBuildTarget(buildTarget)
  36. .Where(i => AdaptivePerformancePackageMetadataStore.IsPackageInstalled(i.packageId))
  37. .Select(i => new AdaptivePerformanceUsageAnalyticsArgs.AdaptivePerformanceInfo
  38. {
  39. name = i.loaderName,
  40. active = AdaptivePerformancePackageMetadataStore.IsLoaderAssigned(i.loaderType, buildTarget)
  41. }).ToList();
  42. return loaders.Any() ? loaders.ToArray() : null;
  43. }
  44. }
  45. }