parent
d187674e00
commit
90cafab785
|
@ -253,8 +253,14 @@ namespace UnityEngine.UI.Extensions
|
|||
/// Update the UI renderer mesh.
|
||||
/// </summary>
|
||||
|
||||
protected override void OnFillVBO(List<UIVertex> vbo)
|
||||
protected override void OnPopulateMesh(Mesh toFill)
|
||||
{
|
||||
List<UIVertex> vbo = new List<UIVertex>();
|
||||
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
|
||||
|
|
|
@ -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;
|
||||
[AddComponentMenu("UI/Extensions/Bound Tooltip/Tooltip Trigger")]
|
||||
public class BoundTooltipTrigger : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, ISelectHandler, IDeselectHandler
|
||||
{
|
||||
[TextAreaAttribute]
|
||||
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();
|
||||
}
|
||||
public bool useMousePosition = false;
|
||||
|
||||
void StartHover(Vector3 position)
|
||||
{
|
||||
BoundTooltipItem.Instance.ShowTooltip(text, position);
|
||||
}
|
||||
void StopHover()
|
||||
{
|
||||
BoundTooltipItem.Instance.HideTooltip();
|
||||
}
|
||||
}
|
||||
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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
void Update()
|
||||
{
|
||||
if (!_pressed)
|
||||
return;
|
||||
|
||||
if (OnButtonHeld != null)
|
||||
if (OnButtonHeld != null)
|
||||
{
|
||||
OnButtonHeld.Invoke(_heldEventData.button);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test method to verify a control has been clicked
|
||||
/// </summary>
|
||||
public void TestClicked()
|
||||
{
|
||||
#if DEBUG || UNITY_EDITOR
|
||||
Debug.Log("Control Clicked");
|
||||
#endif
|
||||
}
|
||||
/// <summary>
|
||||
/// Test method to verify a control has been clicked
|
||||
/// </summary>
|
||||
public void TestClicked()
|
||||
{
|
||||
#if DEBUG || UNITY_EDITOR
|
||||
Debug.Log("Control Clicked");
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Test method to verify a controll is pressed
|
||||
/// </summary>
|
||||
public void TestPressed()
|
||||
{
|
||||
#if DEBUG || UNITY_EDITOR
|
||||
Debug.Log("Control Pressed");
|
||||
#endif
|
||||
}
|
||||
/// <summary>
|
||||
/// Test method to verify a controll is pressed
|
||||
/// </summary>
|
||||
public void TestPressed()
|
||||
{
|
||||
#if DEBUG || UNITY_EDITOR
|
||||
Debug.Log("Control Pressed");
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// est method to verify if a control is released
|
||||
/// </summary>
|
||||
public void TestReleased()
|
||||
{
|
||||
#if DEBUG || UNITY_EDITOR
|
||||
Debug.Log("Control Released");
|
||||
#endif
|
||||
}
|
||||
/// <summary>
|
||||
/// est method to verify if a control is released
|
||||
/// </summary>
|
||||
public void TestReleased()
|
||||
{
|
||||
#if DEBUG || UNITY_EDITOR
|
||||
Debug.Log("Control Released");
|
||||
#endif
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// est method to verify if a control is being held
|
||||
/// </summary>
|
||||
public void TestHold()
|
||||
{
|
||||
#if DEBUG || UNITY_EDITOR
|
||||
Debug.Log("Control Held");
|
||||
#endif
|
||||
}
|
||||
/// <summary>
|
||||
/// est method to verify if a control is being held
|
||||
/// </summary>
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue