unity 路过零件显示名字(text跟随,随便变大变小)

1.画布上新建text,text加上canvas group 和 content sizi fitter 两个组件。

2.再加上代码Tooltip。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Tooltip : MonoBehaviour
{

    private Text txtName;//文字
    private CanvasGroup canvasGroup;//组件
    private float targetAlpha = 0;//标签提示初始透明度
    private float speedAlpha = 10;//透明变换的速度
    private GameObject canvas;//画布
    public  Vector2 M_pos = new Vector2(-100, -40);//增加的位移 

    void Awake()
    {
        txtName = GameObject.Find("Tooltip").GetComponent<Text>();
        canvasGroup = GameObject.Find("Tooltip").GetComponent<CanvasGroup>();
        canvas = GameObject.Find("Canvas");
    }

    void Update()
    {
        //差值运算透明度
        if (canvasGroup.alpha != targetAlpha)
        {
            canvasGroup.alpha = Mathf.Lerp(canvasGroup.alpha, targetAlpha, Time.deltaTime * speedAlpha);
            if (Mathf.Abs(canvasGroup.alpha - targetAlpha) < 0.01f)
            {
                canvasGroup.alpha = targetAlpha;
            }
        }

        //跟随鼠标
        Vector2 Position;
        //这个方法是用来 把鼠标的坐标 转化成 画布的坐标
        RectTransformUtility.ScreenPointToLocalPointInRectangle(canvas.transform as RectTransform, Input.mousePosition, null, out Position);
        txtName.transform.localPosition = Position + M_pos;
    }

    //显示物体
    public void onXian(string name)
    {
        targetAlpha = 1;
        txtName.text = name;
    }
    //隐藏物体
    public void onYin()
    {
        targetAlpha = 0;
    }

}
 

3.在路过的零件加上代码PartsName。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PartsName : MonoBehaviour
{

    public string name;//物体的名字

    private Transform tooltip;

    public bool isXian = true;


    void Start()
    {
        tooltip = GameObject.Find("Tooltip").transform;
    }


    public void OnMouseEnter()
    {
        if (isXian == false) return;
        tooltip.GetComponent<Tooltip>().onXian(name);
    }

    public void OnMouseExit()
    {
        if (isXian == false) return;
        tooltip.GetComponent<Tooltip>().onYin();
    }

}

注意:

1.text的锚点。在左上角。

2.零件上要有collider。

 

 

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值