NGUI_HUD_Text扩展主要用于主角跟随和伤害/治疗的功能。
场景大概是这样的,我们希望有一个主角,在其头顶显示他的名字,在单击鼠标左键的时候显示红色的“-10”表示减少血量,单击鼠标右键的时候显示绿色的“+10”表示增加血量。
首先打开unity编辑器,导入NGUI插件和NGUI_HUD_Text两个插件包。NGUI_HUD_Text扩展我们只用里面的两个脚本:HUDText和UIFollowTarget。所以导入的实例和一个270的package可以删掉,节省空间。
1.在场景中拖入一个UIRoot控件,在其上右键-->Create --> Label。我们把控件的Text属性改成主角的名字“rxm”。在场景中增加一个胶囊体表示主角。
2.给Lable添加脚本UIFollowTarget,然后给UIFollowTarget脚本下的属性赋值:“Target属性:胶囊体;Game Camera:Main Camera;UI Camera:UIRoot下的Camera。
3.在UIRoot下增加一个空的GameObject,名字改成HUD。为此空对象添加脚本HUDChange。代码如下:
using UnityEngine;
using System.Collections; public class HUDChange : MonoBehaviour { private HUDText text; // Use this for initialization
void Start () {
text = this.GetComponent<HUDText> ();
} // Update is called once per frame
void Update () {
if (Input.GetMouseButtonDown ()) {
text.Add(-,Color.red,1f);
}
if (Input.GetMouseButtonDown ()) {
text.Add(,Color.green,1f);
}
}
}
4.参照第二步给HUD添加脚本“UIFollowTarget”,并赋值。
5.运行后通过移动主角可以发现名字随着主角在动,当单击鼠标时也可以看到相应效果,如下:
PS:今天在NGUI中添加Label后,发现无论在Scene,还是Game视图下都有一个边框,效果如下图。卡了我20分钟,郁闷了会儿,后来解决了。把"Gizmos"关掉就可以了。