diff --git a/Assets/Scenes/Level1.shade b/Assets/Scenes/Level1.shade index 340e0c8d..e41192bc 100644 --- a/Assets/Scenes/Level1.shade +++ b/Assets/Scenes/Level1.shade @@ -5193,6 +5193,7 @@ Default Texture: 63979907 Hovered Texture: 51379325 Clicked Texture: 66788278 + current texture: 0 IsActive: true UI Component: Canvas ID: 458 @@ -5226,6 +5227,7 @@ Default Texture: 61602036 Hovered Texture: 58910810 Clicked Texture: 57786063 + current texture: 0 IsActive: true UI Component: Canvas ID: 458 @@ -5259,6 +5261,7 @@ Default Texture: 64806384 Hovered Texture: 58347825 Clicked Texture: 63234380 + current texture: 0 IsActive: true UI Component: Canvas ID: 458 diff --git a/Assets/Scripts/UI/SC_ButtonFX.cs b/Assets/Scripts/UI/SC_ButtonFX.cs index cf218fbe..7ecad2f2 100644 --- a/Assets/Scripts/UI/SC_ButtonFX.cs +++ b/Assets/Scripts/UI/SC_ButtonFX.cs @@ -119,7 +119,7 @@ namespace SHADE_Scripting.UI return; if (tweening == true && thread != null) { - //Debug.Log("Tweening value " + thread.GetValue()); + transform.LocalScale = defaultScale * thread.GetValue(); currentScale = thread.GetValue(); if (thread.IsCompleted()) diff --git a/Assets/Scripts/UI/SC_PauseMenu.cs b/Assets/Scripts/UI/SC_PauseMenu.cs index a20dd586..39c6f860 100644 --- a/Assets/Scripts/UI/SC_PauseMenu.cs +++ b/Assets/Scripts/UI/SC_PauseMenu.cs @@ -37,7 +37,7 @@ public class PauseMenu : Script UIElement resume = resumeBtn.GetComponent(); if (resume != null) { - resume.OnClick.RegisterAction(() => + resume.OnRelease.RegisterAction(() => { if (GameManager.Instance.GamePause) { @@ -61,7 +61,7 @@ public class PauseMenu : Script UIElement retry = retryBtn.GetComponent(); if (retry != null) { - retry.OnClick.RegisterAction(() => + retry.OnRelease.RegisterAction(() => { Audio.StopAllSounds(); SceneManager.RestartScene(); @@ -75,7 +75,7 @@ public class PauseMenu : Script UIElement quit = quitBtn.GetComponent(); if (quit != null) { - quit.OnClick.RegisterAction(() => + quit.OnRelease.RegisterAction(() => { Audio.StopAllSounds(); //go to main menu diff --git a/SHADE_Engine/src/UI/SHButtonComponent.cpp b/SHADE_Engine/src/UI/SHButtonComponent.cpp index 5cc31841..7f0dd60f 100644 --- a/SHADE_Engine/src/UI/SHButtonComponent.cpp +++ b/SHADE_Engine/src/UI/SHButtonComponent.cpp @@ -58,6 +58,7 @@ RTTR_REGISTRATION .property("Default Texture", &SHButtonComponent::GetDefaultTexture, &SHButtonComponent::SetDefaultTexture) .property("Hovered Texture", &SHButtonComponent::GetHoveredTexture, &SHButtonComponent::SetHoveredTexture) .property("Clicked Texture", &SHButtonComponent::GetClickedTexture, &SHButtonComponent::SetClickedTexture) + .property("current texture", &SHButtonComponent::currentTexture) ; diff --git a/SHADE_Engine/src/UI/SHButtonComponent.h b/SHADE_Engine/src/UI/SHButtonComponent.h index a89a4b9e..cb00300c 100644 --- a/SHADE_Engine/src/UI/SHButtonComponent.h +++ b/SHADE_Engine/src/UI/SHButtonComponent.h @@ -26,7 +26,7 @@ namespace SHADE void SetHoveredTexture(AssetID texture) noexcept; void SetClickedTexture(AssetID texture) noexcept; - + AssetID currentTexture; friend class SHUISystem; private: @@ -35,7 +35,7 @@ namespace SHADE AssetID hoveredTexture; AssetID clickedTexture; - AssetID currentTexture; + RTTR_ENABLE() diff --git a/SHADE_Engine/src/UI/SHUISystem.cpp b/SHADE_Engine/src/UI/SHUISystem.cpp index 16cf88aa..74dfb62c 100644 --- a/SHADE_Engine/src/UI/SHUISystem.cpp +++ b/SHADE_Engine/src/UI/SHUISystem.cpp @@ -263,6 +263,11 @@ namespace SHADE return true; } + //In case the UI was clicked but the mouse is not held down and the key up frame was missed because of active state. + if (comp.isClicked && !SHInputManager::GetKey(SHInputManager::SH_KEYCODE::LMB)) + { + comp.isClicked = false; + } return false; @@ -318,7 +323,7 @@ namespace SHADE //SHLOG_INFO("SETTING HOVERED TEXTURE") } } - if (textureID != 0 && textureID != comp.currentTexture) + if (textureID != 0 && comp.currentTexture != textureID) { auto material = renderable->GetModifiableMaterial(); comp.currentTexture = textureID;