diff --git a/Assets/Scripts/Cinematics/CinematicsManager.cs b/Assets/Scripts/Cinematics/CinematicsManager.cs index 9bcd2b43..63a6fdba 100644 --- a/Assets/Scripts/Cinematics/CinematicsManager.cs +++ b/Assets/Scripts/Cinematics/CinematicsManager.cs @@ -12,7 +12,10 @@ namespace Cinematics /// Handles loading, playing and unloading cinematics /// public class CinematicsManager : MonoBehaviour -{ + { + public event System.Action OnCinematicStarted; + public event System.Action OnCinematicStopped; + private static CinematicsManager _instance; private static bool _isQuitting; private Image cinematicSprites; @@ -70,6 +73,7 @@ namespace Cinematics playableDirector.stopped += OnPlayableDirectorStopped; playableDirector.Play(assetToPlay); Debug.Log("Playing cinematic " + assetToPlay.name); + OnCinematicStarted?.Invoke(); return playableDirector; } @@ -77,6 +81,7 @@ namespace Cinematics { cinematicSprites.enabled = false; Debug.Log("Cinematic stopped!"); + OnCinematicStopped?.Invoke(); // Release the addressable handle associated with this director ReleaseAddressableHandle(director); diff --git a/Assets/Scripts/Cinematics/SkipCinematic.cs b/Assets/Scripts/Cinematics/SkipCinematic.cs index d058cb3d..3eb97c9d 100644 --- a/Assets/Scripts/Cinematics/SkipCinematic.cs +++ b/Assets/Scripts/Cinematics/SkipCinematic.cs @@ -25,13 +25,25 @@ namespace Cinematics void OnEnable() { - // Register as override consumer when enabled - InputManager.Instance.RegisterOverrideConsumer(this); + CinematicsManager.Instance.OnCinematicStarted += HandleCinematicStarted; + CinematicsManager.Instance.OnCinematicStopped += HandleCinematicStopped; } - + void OnDisable() { - // Unregister when disabled + CinematicsManager.Instance.OnCinematicStarted -= HandleCinematicStarted; + CinematicsManager.Instance.OnCinematicStopped -= HandleCinematicStopped; + // If still registered, unregister input override + InputManager.Instance.UnregisterOverrideConsumer(this); + } + + private void HandleCinematicStarted() + { + InputManager.Instance.RegisterOverrideConsumer(this); + } + + private void HandleCinematicStopped() + { InputManager.Instance.UnregisterOverrideConsumer(this); } diff --git a/Packages/manifest.json b/Packages/manifest.json index b6cc5615..aa1d97f2 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -5,6 +5,7 @@ "com.unity.addressables": "2.7.3", "com.unity.addressables.android": "1.0.7", "com.unity.cinemachine": "3.1.4", + "com.unity.device-simulator.devices": "1.0.0", "com.unity.feature.2d": "2.0.1", "com.unity.film-internal-utilities": "0.18.4-preview", "com.unity.graphtoolkit": "0.4.0-exp.2", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index 1bced10b..0de01da8 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -155,6 +155,13 @@ }, "url": "https://packages.unity.com" }, + "com.unity.device-simulator.devices": { + "version": "1.0.0", + "depth": 0, + "source": "registry", + "dependencies": {}, + "url": "https://packages.unity.com" + }, "com.unity.ext.nunit": { "version": "2.0.5", "depth": 1,