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