From 5cb679de8ab61b24bee79f0a790eb91d8e3365f9 Mon Sep 17 00:00:00 2001 From: bitsandfoxes Date: Thu, 30 Jun 2022 11:23:25 +0200 Subject: [PATCH] breadcrumbs on button clicks --- Directory.Build.props | 55 ++++++++++++++++++- .../ButtonInstrumentation.cs | 33 +++++++++++ .../Sentry.Unity.Editor.csproj | 4 ++ src/Sentry.Unity/SentryScene.cs | 10 ++++ test/Directory.Build.props | 12 ---- 5 files changed, 101 insertions(+), 13 deletions(-) create mode 100644 src/Sentry.Unity.Editor/ButtonInstrumentation.cs create mode 100644 src/Sentry.Unity/SentryScene.cs diff --git a/Directory.Build.props b/Directory.Build.props index 6a763ce64..d395f16d4 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -43,10 +43,63 @@ + + + + - $(UnityManagedPath)/UnityEngine.dll + $(UnityManagedPath)/UnityEngine/UnityEngine.dll false + + $(UnityManagedPath)/UnityEngine/UnityEngine.CoreModule.dll + false + + + $(UnityManagedPath)/UnityEngine/UnityEngine.IMGUIModule.dll + false + + + $(UnityManagedPath)/UnityEngine/UnityEngine.ImageConversionModule.dll + false + + + $(UnityManagedPath)/UnityEngine/UnityEngine.JSONSerializeModule.dll + false + + + $(UnityManagedPath)/UnityEngine/UnityEngine.ScreenCaptureModule.dll + false + + + $(UnityManagedPath)/UnityEngine/UnityEngine.UnityWebRequestModule.dll + false + + + + $(UnityManagedPath)/UnityEngine/UnityEngine.AndroidJNIModule.dll + false + + + + $(UnityManagedPath)/UnityEngine/UnityEngine.UnityAnalyticsModule.dll + false + + + + $(UnityManagedPath)/UnityEngine/UnityEngine.InputLegacyModule.dll + false + + + + $(UnityManagedPath)/UnityEngine/UnityEngine.ProfilerModule.dll + false + + + + + + diff --git a/src/Sentry.Unity.Editor/ButtonInstrumentation.cs b/src/Sentry.Unity.Editor/ButtonInstrumentation.cs new file mode 100644 index 000000000..6faa72645 --- /dev/null +++ b/src/Sentry.Unity.Editor/ButtonInstrumentation.cs @@ -0,0 +1,33 @@ +using UnityEditor.Build; +using UnityEditor.Build.Reporting; +using UnityEditor.Events; +using UnityEngine.Events; +using UnityEngine.SceneManagement; +using UnityEngine.UI; + +namespace Sentry.Unity.Editor +{ + public class ButtonInstrumentation : IProcessSceneWithReport + { + public int callbackOrder { get; } = 0; + + public void OnProcessScene(Scene scene, BuildReport report) + { + var gameObjects = scene.GetRootGameObjects(); + if (gameObjects is { Length: > 0 }) + { + var sentryScene = gameObjects[0].AddComponent(); + + foreach (var gameObject in gameObjects) + { + var buttons = gameObject.GetComponentsInChildren