[Unity][UGUI][UI佈局]Tooltip事件閃爍BUG解決辦法
阿新 • • 發佈:2019-01-23
方法1:
OnPointerEnter 和 OnPointerExit 有點問題。即便是用延遲,還是 會 出現 快速 enter 和 exit事件同時馬上 發生的問題。
大概原因是 Tooltip的UI 離 觸發的UI 太近的原因。
因此 把 Tooltip 提示框 的距離 提供一個距離值,問題就解決了。
using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class Test_ItemTooltip : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler { public GameObject go; public void OnPointerDown(PointerEventData eventData) { } /// <summary> /// 進入觸發顯示物品資訊 /// </summary> /// <param name="eventData"></param> public void OnPointerEnter(PointerEventData eventData) { go.SetActive(true); go.GetComponent<RectTransform>().position = new Vector3(transform.position.x + ((go.GetComponent<RectTransform>().sizeDelta.x / 2) + 100), transform.position.y - ((go.GetComponent<RectTransform>().sizeDelta.y / 2) + 100) , 0); } /// <summary> /// 移除隱藏顯示 /// </summary> /// <param name="eventData"></param> public void OnPointerExit(PointerEventData eventData) { go.SetActive(false); } }
方法2:在OnPointerEnter 和 OnPointerExit 的基礎上,改變錨點pivot的座標。
按照參考文章2 的內容。
改變滑鼠懸浮 按鈕 的 錨點pivot為(0,1)
tooltip 提示框 的錨點pivot 為(1,0)
使得這兩個 UI 的位置錯開。
如果不能動態改變 pivot 錨點的座標。
就只能提前 設定好 pivot 錨點 座標 的物體。
參考文章:
2.Tooltip position
3.