一、提示面板的UI设置
1.1 、提示面板的Text文本设置:
1.2 、提示面板的的文本背景图片设置
![](https://img-blog.csdnimg.cn/20200417111140397.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMjI5NzM3,size_16,color_FFFFFF,t_70)
输入文本测试 :
![](https://img-blog.csdnimg.cn/2020041711132341.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMjI5NzM3,size_16,color_FFFFFF,t_70)
如果不想让背景图片遮挡文字内容(或者是不想改变背景图片透明度)可以复制一份Text作为其子物体。
![](https://img-blog.csdnimg.cn/20200417112719561.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMjI5NzM3,size_16,color_FFFFFF,t_70)
1.3、改变提示面板的中心点:
![](https://img-blog.csdnimg.cn/202004171145473.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMjI5NzM3,size_16,color_FFFFFF,t_70)
这个中心点的位置是文本自身左上角的点,不管自身大小如何变化,中心点永远是在这个位置,我们设置UI组建位置的时候就是通过中心点的位置来设置的,如果想要设置这个文本的位置,让这个中心点设置到鼠标的点就可以了
1.4 取消射线检测选项
![](https://img-blog.csdnimg.cn/20200417121041583.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMjI5NzM3,size_16,color_FFFFFF,t_70)
二、创建脚本ToolTip.cs控制提示面板
![](https://img-blog.csdnimg.cn/20200417121413174.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMjI5NzM3,size_16,color_FFFFFF,t_70)
![](https://img-blog.csdnimg.cn/20200417122401767.png)
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
public class ToolTip : MonoBehaviour {
private Text toolTipText;
private Text contentText;
//控制提示面板的显示或隐藏
private CanvasGroup canvasGroup;
//提示面板默认是不显示的
private float targetAlpha = 0 ;
//渐变速度
public float smoothing = 1;
void Start()
{
toolTipText = GetComponent();
contentText = transform.Find("Content").GetComponent();
canvasGroup = GetComponent();
}
void Update()
{
//利用插值函数控制提示面板隐藏的渐变过程
if (canvasGroup.alpha != targetAlpha)
{
canvasGroup.alpha = Mathf.Lerp(canvasGroup.alpha, targetAlpha,smoothing*Time.deltaTime);
//当前alpha与目标alpha很接近时表示已达到目标值
if (Mathf.Abs(canvasGroup.alpha - targetAlpha) < 0.01f)
{
canvasGroup.alpha = targetAlpha;
}
}
}
//提示面板以及内容的显示
public void Show(string text)
{
toolTipText.text = text;
contentText.text = text;
targetAlpha = 1;
}
//提示面板隐藏
public void Hide()
{
targetAlpha = 0;
}
//根据传过来的坐标设置当前提示面板的位置
public void SetLocalPotion(Vector3 position)
{
transform.localPosition = position;
}
}
|