From 90cafab7855f2e59bb96ee49bc228a222d75f2ba Mon Sep 17 00:00:00 2001 From: "Simon (darkside) Jackson" Date: Wed, 23 Dec 2015 20:30:08 +0000 Subject: [PATCH] Tidy up post merge --HG-- branch : develop_5.2 --- Scripts/Effects/ImageExtended.cs | 14 ++- .../BoundTooltip/BoundTooltipTrigger.cs | 93 ++++++++------ Scripts/Utilities/UISelectableExtension.cs | 119 +++++++++--------- 3 files changed, 130 insertions(+), 96 deletions(-) diff --git a/Scripts/Effects/ImageExtended.cs b/Scripts/Effects/ImageExtended.cs index d88f7f8..87a82d9 100644 --- a/Scripts/Effects/ImageExtended.cs +++ b/Scripts/Effects/ImageExtended.cs @@ -253,8 +253,14 @@ namespace UnityEngine.UI.Extensions /// Update the UI renderer mesh. /// - protected override void OnFillVBO(List vbo) + protected override void OnPopulateMesh(Mesh toFill) { + List vbo = new List(); + using (var helper = new VertexHelper(toFill)) + { + helper.GetUIVertexStream(vbo); + } + switch (type) { case Type.Simple: @@ -270,6 +276,12 @@ namespace UnityEngine.UI.Extensions GenerateFilledSprite(vbo, m_PreserveAspect); break; } + + using (var helper = new VertexHelper()) + { + helper.AddUIVertexTriangleStream(vbo); + helper.FillMesh(toFill); + } } #region Various fill functions diff --git a/Scripts/ToolTips/BoundTooltip/BoundTooltipTrigger.cs b/Scripts/ToolTips/BoundTooltip/BoundTooltipTrigger.cs index 9776722..415d70e 100644 --- a/Scripts/ToolTips/BoundTooltip/BoundTooltipTrigger.cs +++ b/Scripts/ToolTips/BoundTooltip/BoundTooltipTrigger.cs @@ -1,39 +1,54 @@ -///Credit Martin Nerurkar // www.martin.nerurkar.de // www.sharkbombs.com -///Sourced from - http://www.sharkbombs.com/2015/02/10/tooltips-with-the-new-unity-ui-ugui/ - -using UnityEngine.EventSystems; - -namespace UnityEngine.UI.Extensions -{ - [AddComponentMenu("UI/Extensions/Bound Tooltip/Tooltip Trigger")] - public class BoundTooltipTrigger : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, ISelectHandler, IDeselectHandler - { - public string text; - - public void OnPointerEnter(PointerEventData eventData) - { - StartHover(new Vector3(eventData.position.x, eventData.position.y, 0f)); - } - public void OnSelect(BaseEventData eventData) - { - StartHover(transform.position); - } - public void OnPointerExit(PointerEventData eventData) - { - StopHover(); - } - public void OnDeselect(BaseEventData eventData) - { - StopHover(); - } - - void StartHover(Vector3 position) - { - BoundTooltipItem.Instance.ShowTooltip(text, position); - } - void StopHover() - { - BoundTooltipItem.Instance.HideTooltip(); - } - } -} +///Credit Martin Nerurkar // www.martin.nerurkar.de // www.sharkbombs.com +///Sourced from - http://www.sharkbombs.com/2015/02/10/tooltips-with-the-new-unity-ui-ugui/ +using UnityEngine.EventSystems; + +namespace UnityEngine.UI.Extensions +{ + [AddComponentMenu("UI/Extensions/Bound Tooltip/Tooltip Trigger")] + public class BoundTooltipTrigger : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, ISelectHandler, IDeselectHandler + { + [TextAreaAttribute] + public string text; + + public bool useMousePosition = false; + + public Vector3 offset; + + public void OnPointerEnter(PointerEventData eventData) + { + if (useMousePosition) + { + StartHover(new Vector3(eventData.position.x, eventData.position.y, 0f)); + } + else + { + StartHover(transform.position + offset); + } + } + + public void OnSelect(BaseEventData eventData) + { + StartHover(transform.position); + } + + public void OnPointerExit(PointerEventData eventData) + { + StopHover(); + } + + public void OnDeselect(BaseEventData eventData) + { + StopHover(); + } + + void StartHover(Vector3 position) + { + BoundTooltipItem.Instance.ShowTooltip(text, position); + } + + void StopHover() + { + BoundTooltipItem.Instance.HideTooltip(); + } + } +} diff --git a/Scripts/Utilities/UISelectableExtension.cs b/Scripts/Utilities/UISelectableExtension.cs index 0f73cf1..17733b8 100644 --- a/Scripts/Utilities/UISelectableExtension.cs +++ b/Scripts/Utilities/UISelectableExtension.cs @@ -2,6 +2,7 @@ /// Sourced from - http://forum.unity3d.com/threads/scripts-useful-4-6-scripts-collection.264161/page-2#post-1796783 /// Extended to include a HELD state that continually fires while the button is held down. /// Refactored so it can be added to any button and expose the events in the editor. +/// Unselect fix by @Sfyne using UnityEngine.Events; using UnityEngine.EventSystems; @@ -21,27 +22,27 @@ namespace UnityEngine.UI.Extensions #endregion #region Events - [Tooltip("Event that fires when a button is initially pressed down")] + [Tooltip("Event that fires when a button is initially pressed down")] public UIButtonEvent OnButtonPress; - [Tooltip("Event that fires when a button is released")] + [Tooltip("Event that fires when a button is released")] public UIButtonEvent OnButtonRelease; - [Tooltip("Event that continually fires while a button is held down")] + [Tooltip("Event that continually fires while a button is held down")] public UIButtonEvent OnButtonHeld; #endregion - - private bool _pressed; + + private bool _pressed; private PointerEventData _heldEventData; void IPointerDownHandler.OnPointerDown(PointerEventData eventData) { //Can't set the state as it's too locked down. - //DoStateTransition(SelectionState.Pressed, false); + //DoStateTransition(SelectionState.Pressed, false); if (OnButtonPress != null) { OnButtonPress.Invoke(eventData.button); } - _pressed = true; + _pressed = true; _heldEventData = eventData; } @@ -54,59 +55,65 @@ namespace UnityEngine.UI.Extensions { OnButtonRelease.Invoke(eventData.button); } - _pressed = false; + _pressed = false; _heldEventData = null; } - - void Update() - { - if (!_pressed) - return; - - if (OnButtonHeld != null) + + void Update() + { + if (!_pressed) + return; + + if (OnButtonHeld != null) { OnButtonHeld.Invoke(_heldEventData.button); } - } - - /// - /// Test method to verify a control has been clicked - /// - public void TestClicked() - { - #if DEBUG || UNITY_EDITOR - Debug.Log("Control Clicked"); - #endif - } - - /// - /// Test method to verify a controll is pressed - /// - public void TestPressed() - { - #if DEBUG || UNITY_EDITOR - Debug.Log("Control Pressed"); - #endif - } - - /// - /// est method to verify if a control is released - /// - public void TestReleased() - { - #if DEBUG || UNITY_EDITOR - Debug.Log("Control Released"); - #endif - } - - /// - /// est method to verify if a control is being held - /// - public void TestHold() - { - #if DEBUG || UNITY_EDITOR - Debug.Log("Control Held"); - #endif - } + } + + /// + /// Test method to verify a control has been clicked + /// + public void TestClicked() + { + #if DEBUG || UNITY_EDITOR + Debug.Log("Control Clicked"); + #endif + } + + /// + /// Test method to verify a controll is pressed + /// + public void TestPressed() + { + #if DEBUG || UNITY_EDITOR + Debug.Log("Control Pressed"); + #endif + } + + /// + /// est method to verify if a control is released + /// + public void TestReleased() + { + #if DEBUG || UNITY_EDITOR + Debug.Log("Control Released"); + #endif + } + + /// + /// est method to verify if a control is being held + /// + public void TestHold() + { + #if DEBUG || UNITY_EDITOR + Debug.Log("Control Held"); + #endif + } + + //Fixed UISelectableExtension inactive bug (if gameObject becomes inactive while button is held down it never goes back to _pressed = false) + void OnDisable () + { + _pressed = false; + } } } \ No newline at end of file