1、NGUI HUD Text v1.13下载链接 链接:https://pan.baidu.com/s/1D0HiOyBd0SJKLAl30SF2CQ 密码:5otl
2、NGUI HUD Text简单API分析
2.1、最基本的文本Text显示
新建一个Unity场景,在场景中创建一个空物体,并为其添加一个HUD Text.cs脚本,然后创建一个脚本如下所示。注意在添加HUDText需要给他设置一个默认的Font,否则看不到效果。offset Curve为一些动画曲线。可自行调节。
using UnityEngine;
using System.Collections;
public class HUDTextTest : MonoBehaviour {
public HUDText m_text;
// Update is called once per frame
void Update ()
{
if(Input.GetMouseButtonDown (0))
{
DisText("哈哈哈哈");
}
}
/// <summary>
/// 显示特定文字
/// </summary>
/// <param name="str">HUDText显示文字</param>
public void DisText(string str)
{
///显示文字 显示颜色 显示文字停留时间
m_text.Add(str, Color.red, 1);
}
}
当玩家鼠标点击时,场景会出现如下图所示效果。
2.2、设置位置
给HUDText设置一个特定的位置,如显示在某一个特定3D物体上方之类的。设置方法如下所示
/// <summary>
/// HUDText需要显示的目标位置
/// </summary>
/// <param name="target"></param>
public void SetTarget(Transform target)
{
#region 方法1
Vector3 pos = Camera.main.WorldToViewportPoint(target.position);
pos = UICamera.mainCamera.ViewportToWorldPoint(pos);
pos = m_text.transform.parent.InverseTransformPoint(pos);
pos.z = 0f;
m_text.transform.localPosition = pos;
#endregion
#region 方法2
//Vector3 vec = Camera.main.WorldToViewportPoint(target.position);
////转换为UI摄像机的世界坐标
//Vector3 vec1 = UICamera.mainCamera.ViewportToWorldPoint(vec);
//m_text.transform.position = vec1;
#endregion
}
如下图我将Cube位置设置为HUDText需要显示的位置,显示效果如下图所示。
2.3、HUDText的ADD方法当显示为数字时具有一定特殊性
如下代码
public void DisText(int intstr)
{
///显示数字 显示颜色 显示文字停留时间
m_text.Add(intstr, Color.red, 1);
}
采用如下方法调用,显示为+1,并且当你在其未消失时点击会出现如下图所示的+2+3等一系列数字,快速持续调用会出现数字累加效果。
if(Input.GetMouseButtonDown (0))
{
DisText(1);
}