unity 鼠標移入彈出UI的操作

外部調用 show 和Hide方法

using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
public class ShowInfo : MonoBehaviour {
    private bool _isshowing = false;
    public Canvas Canvas;
    // Use this for initialization
    void Start()
    {
        Hide();
    }
    // Update is called once per frame
    void Update()
    {
    }
    public void Hide()
    {
        transform.DOScale(Vector3.zero, 0.3f);
        _isshowing = false;
    }
    public void Show()
    {
        transform.DOScale(Vector3.one, 0.3f);
        _isshowing = true;
    }
    void FixedUpdate()
    {
        if (_isshowing)
        {
            Vector2 localPoint = Input.mousePosition - new Vector3(Screen.width * 0.5f, Screen.height * 0.5f);
            Vector3 pos = (localPoint / Canvas.transform.localScale.x);
            pos.x += 10f;
            transform.DOLocalMove(pos, 0.01f);
        }
    }
}

補充:Unity鼠標移動到UI按鈕顯示按鈕全稱

在工作中遇到一個問題,就是需要將鼠標移動到按鈕上方後在按鈕旁邊顯示出按鈕全稱,往上查閱資料後發現大傢對OnMouseOver這一接口的調用討論較多,但是在使用中發現這一接口適用於擁有碰撞體的gameObject中和GUI組件,對於UI中的組件並沒有用途,因此我首先嘗試瞭使用GetLocalCorners函數獲取按鈕的四個頂點坐標再獲取鼠標的坐標進行計算判斷鼠標是否在按鈕區域內。

這種方法可以實現想要的效果。

但是當師傅看瞭我的代碼後告訴我根本就不用這麼麻煩,可以用Event Systems中的接口直接進行實現,具體如下:

在頭文件中添加命名空間using EventSystems;

將自己定義的類繼承自這個命名空間中需要的接口,再在類中為繼承的接口添加實現:

添加實現:

這樣就能實現控制自己需要的文字顯示在一張UI上的圖片上瞭。

以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀:

    None Found