NGUI 使用 NGUI 自带的鼠标提示实现详解
在游戏开发中,鼠标提示是一个常用的功能。虽然在手机游戏中可能较少使用,但在网页游戏或其他小型应用的开发里,该功能却经常会被用到。不过,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 自带的部分功能,实现一个自定义的鼠标提示效果。