From 2ece5b29d3f53b82d146f32be67ca89bf9025ef9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ha=CC=8Akan=20Sidenvall?= Date: Fri, 13 Sep 2024 12:09:20 +0200 Subject: [PATCH] FIX: OnScreenStick leaking --- Packages/com.unity.inputsystem/CHANGELOG.md | 3 +++ .../InputSystem/Plugins/OnScreen/OnScreenStick.cs | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/Packages/com.unity.inputsystem/CHANGELOG.md b/Packages/com.unity.inputsystem/CHANGELOG.md index 93e28056e0..3148a873c1 100644 --- a/Packages/com.unity.inputsystem/CHANGELOG.md +++ b/Packages/com.unity.inputsystem/CHANGELOG.md @@ -10,6 +10,9 @@ however, it has to be formatted properly to pass verification tests. ## [Unreleased] - yyyy-mm-dd +### Fixed +- Fixed memory leak when the OnScreenStick component was destroyed [ISXB-1070](https://issuetracker.unity3d.com/product/unity/issues/guid/ISXB-1070). Contribution by [LukeUnityDev](https://github.com/LukeUnityDev). + ### Changed - Renamed editor Resources directories to PackageResources to fix package validation warnings. diff --git a/Packages/com.unity.inputsystem/InputSystem/Plugins/OnScreen/OnScreenStick.cs b/Packages/com.unity.inputsystem/InputSystem/Plugins/OnScreen/OnScreenStick.cs index 153f24a580..da1f8ad175 100644 --- a/Packages/com.unity.inputsystem/InputSystem/Plugins/OnScreen/OnScreenStick.cs +++ b/Packages/com.unity.inputsystem/InputSystem/Plugins/OnScreen/OnScreenStick.cs @@ -136,6 +136,15 @@ private void Start() image.alphaHitTestMinimumThreshold = 0.5f; } + private void OnDestroy() + { + if (m_UseIsolatedInputActions) + { + m_PointerDownAction.started -= OnPointerDown; + m_PointerDownAction.canceled -= OnPointerUp; + } + } + private void BeginInteraction(Vector2 pointerPosition, Camera uiCamera) { var canvasRectTransform = UGUIOnScreenControlUtils.GetCanvasRectTransform(transform);