NGUI 使用 NGUI 自带的鼠标提示实现详解

2015年03月19日 11:44 0 点赞 0 评论 更新于 2025-11-21 17:42

在游戏开发中,鼠标提示是一个常用的功能。虽然在手机游戏中可能较少使用,但在网页游戏或其他小型应用的开发里,该功能却经常会被用到。不过,NGUI 自带的鼠标提示功能似乎存在一定局限性,它好像只能显示文字,因为目前仅能找到 ShowText() 方法。鉴于此,我们可能需要自行实现一个鼠标提示功能。

最终效果

在实现过程中,我们先明确最终要达成的效果。

测试场景布局

测试场景的布局如下: 需要特别注意的是,鼠标提示面板的背景 Widget 要选择左上,具体设置可参考对应图示。

组件挂载与属性设置

挂载 UITooltip.cs 组件

TooltipPanel 挂载 UITooltip.cs 组件,并设置好相应属性,详细设置可查看对应图示。

为 UISprite 添加 BoxCollider 组件

场景中的 EquipItem 属于 UISprite,还需要为其添加 BoxCollider 组件,添加方式可参考对应图示。

编写并挂载脚本

编写 EquipItem.cs 脚本

我们编写 EquipItem.cs 脚本,其代码如下:

using UnityEngine;
using System.Collections;

public class EquipItem : MonoBehaviour
{
public string equipType;

void OnTooltip()
{
// 两种方法都合适
//UITooltip.ShowText (this.GetEquipTooltip());
}

void OnHover()
{
UITooltip.ShowText(this.GetEquipTooltip());
}

private string GetEquipTooltip()
{
string tooltipText = "";
if (equipType == "1")
{
tooltipText = "头盔";
}
else if (equipType == "2")
{
tooltipText = "武器";
}
else if (equipType == "3")
{
tooltipText = "护肩";
}
else if (equipType == "4")
{
tooltipText = "手套";
}
else if (equipType == "5")
{
tooltipText = "裤子";
}
else if (equipType == "6")
{
tooltipText = "鞋子";
}

return tooltipText;
}
}

挂载 EquipItem.cs 脚本

将编写好的 EquipItem.cs 脚本挂载到 EquipItem 上,挂载操作可参考对应图示。

通过以上步骤,我们就可以利用 NGUI 自带的部分功能,实现一个自定义的鼠标提示效果。

作者信息

menghao

menghao

共发布了 3994 篇文章