您的位置:首页 > 产品设计 > UI/UE

NGUI HUD Text

2018-04-12 15:48 183 查看
1、NGUI HUD Text v1.13下载链接 链接:https://pan.baidu.com/s/1D0HiOyBd0SJKL
4000
Al30SF2CQ 密码: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);
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: