commit
d187674e00
|
@ -1,54 +0,0 @@
|
||||||
///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();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -253,14 +253,8 @@ namespace UnityEngine.UI.Extensions
|
||||||
/// Update the UI renderer mesh.
|
/// Update the UI renderer mesh.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
||||||
protected override void OnPopulateMesh(Mesh toFill)
|
protected override void OnFillVBO(List<UIVertex> vbo)
|
||||||
{
|
{
|
||||||
List<UIVertex> vbo = new List<UIVertex>();
|
|
||||||
using (var helper = new VertexHelper(toFill))
|
|
||||||
{
|
|
||||||
helper.GetUIVertexStream(vbo);
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (type)
|
switch (type)
|
||||||
{
|
{
|
||||||
case Type.Simple:
|
case Type.Simple:
|
||||||
|
@ -276,12 +270,6 @@ namespace UnityEngine.UI.Extensions
|
||||||
GenerateFilledSprite(vbo, m_PreserveAspect);
|
GenerateFilledSprite(vbo, m_PreserveAspect);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
using (var helper = new VertexHelper())
|
|
||||||
{
|
|
||||||
helper.AddUIVertexTriangleStream(vbo);
|
|
||||||
helper.FillMesh(toFill);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#region Various fill functions
|
#region Various fill functions
|
|
@ -0,0 +1,5 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 3941688ec5107f5479d09d503b6376c5
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
userData:
|
|
@ -0,0 +1,39 @@
|
||||||
|
///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();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,119 +0,0 @@
|
||||||
/// Credit AriathTheWise
|
|
||||||
/// 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;
|
|
||||||
|
|
||||||
namespace UnityEngine.UI.Extensions
|
|
||||||
{
|
|
||||||
/// <summary>
|
|
||||||
/// UIButton
|
|
||||||
/// </summary>
|
|
||||||
[AddComponentMenu("UI/Extensions/UI Selectable Extension")]
|
|
||||||
[RequireComponent(typeof(Selectable))]
|
|
||||||
public class UISelectableExtension : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
|
|
||||||
{
|
|
||||||
#region Sub-Classes
|
|
||||||
[System.Serializable]
|
|
||||||
public class UIButtonEvent : UnityEvent<PointerEventData.InputButton> { }
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
#region Events
|
|
||||||
[Tooltip("Event that fires when a button is initially pressed down")]
|
|
||||||
public UIButtonEvent OnButtonPress;
|
|
||||||
[Tooltip("Event that fires when a button is released")]
|
|
||||||
public UIButtonEvent OnButtonRelease;
|
|
||||||
[Tooltip("Event that continually fires while a button is held down")]
|
|
||||||
public UIButtonEvent OnButtonHeld;
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
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);
|
|
||||||
|
|
||||||
if (OnButtonPress != null)
|
|
||||||
{
|
|
||||||
OnButtonPress.Invoke(eventData.button);
|
|
||||||
}
|
|
||||||
_pressed = true;
|
|
||||||
_heldEventData = eventData;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void IPointerUpHandler.OnPointerUp(PointerEventData eventData)
|
|
||||||
{
|
|
||||||
//DoStateTransition(SelectionState.Normal, false);
|
|
||||||
|
|
||||||
if (OnButtonRelease != null)
|
|
||||||
{
|
|
||||||
OnButtonRelease.Invoke(eventData.button);
|
|
||||||
}
|
|
||||||
_pressed = false;
|
|
||||||
_heldEventData = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
void Update()
|
|
||||||
{
|
|
||||||
if (!_pressed)
|
|
||||||
return;
|
|
||||||
|
|
||||||
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 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 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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,112 @@
|
||||||
|
/// Credit AriathTheWise
|
||||||
|
/// 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.
|
||||||
|
|
||||||
|
using UnityEngine.Events;
|
||||||
|
using UnityEngine.EventSystems;
|
||||||
|
|
||||||
|
namespace UnityEngine.UI.Extensions
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// UIButton
|
||||||
|
/// </summary>
|
||||||
|
[AddComponentMenu("UI/Extensions/UI Selectable Extension")]
|
||||||
|
[RequireComponent(typeof(Selectable))]
|
||||||
|
public class UISelectableExtension : MonoBehaviour, IPointerDownHandler, IPointerUpHandler
|
||||||
|
{
|
||||||
|
#region Sub-Classes
|
||||||
|
[System.Serializable]
|
||||||
|
public class UIButtonEvent : UnityEvent<PointerEventData.InputButton> { }
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region Events
|
||||||
|
[Tooltip("Event that fires when a button is initially pressed down")]
|
||||||
|
public UIButtonEvent OnButtonPress;
|
||||||
|
[Tooltip("Event that fires when a button is released")]
|
||||||
|
public UIButtonEvent OnButtonRelease;
|
||||||
|
[Tooltip("Event that continually fires while a button is held down")]
|
||||||
|
public UIButtonEvent OnButtonHeld;
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
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);
|
||||||
|
|
||||||
|
if (OnButtonPress != null)
|
||||||
|
{
|
||||||
|
OnButtonPress.Invoke(eventData.button);
|
||||||
|
}
|
||||||
|
_pressed = true;
|
||||||
|
_heldEventData = eventData;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void IPointerUpHandler.OnPointerUp(PointerEventData eventData)
|
||||||
|
{
|
||||||
|
//DoStateTransition(SelectionState.Normal, false);
|
||||||
|
|
||||||
|
if (OnButtonRelease != null)
|
||||||
|
{
|
||||||
|
OnButtonRelease.Invoke(eventData.button);
|
||||||
|
}
|
||||||
|
_pressed = false;
|
||||||
|
_heldEventData = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Update()
|
||||||
|
{
|
||||||
|
if (!_pressed)
|
||||||
|
return;
|
||||||
|
|
||||||
|
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 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 being held
|
||||||
|
/// </summary>
|
||||||
|
public void TestHold()
|
||||||
|
{
|
||||||
|
#if DEBUG || UNITY_EDITOR
|
||||||
|
Debug.Log("Control Held");
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,12 +1,8 @@
|
||||||
fileFormatVersion: 2
|
fileFormatVersion: 2
|
||||||
guid: 2bdfd6b4084989d41ba560bd1b72cbda
|
guid: 6bb501adc62c7394fae41ae7a6032eb3
|
||||||
timeCreated: 1441922219
|
|
||||||
licenseType: Pro
|
|
||||||
MonoImporter:
|
MonoImporter:
|
||||||
serializedVersion: 2
|
serializedVersion: 2
|
||||||
defaultReferences: []
|
defaultReferences: []
|
||||||
executionOrder: 0
|
executionOrder: 0
|
||||||
icon: {instanceID: 0}
|
icon: {instanceID: 0}
|
||||||
userData:
|
userData:
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
Loading…
Reference in New Issue