HUD Text
很早之前就有闻于NGUI中的HUD Text插件,今天得以尝试,看了会儿官方的文档,楞是没给看明白,官方的ReadMe.txt写的使用方法如下:
官网Usage
- 1. Attach the HUDText script to a game object underneath your UIRoot and set the font it should use.
- 2. To make it follow an object drawn with another camera, attach UIFollowTarget to the same object and set its target.
- 3. From code, use HUDText's Add() function to add new floating text entries.
使用方法
看过它的Example之后自己动手写了个简单的demo
操作步骤
1、新建Scene,创建一个Cube,添加脚本UseHUD.cs
2、建立NGUI,把NGUI放在2DUI layer
3、在NGUI的Camera上建一个空的GameObject,绑定上脚本HUDRoot.cs
4、打开UseHUD.cs,代码如下:
示例代码
- using UnityEngine;
- using System.Collections;
-
- /// <summary>
- /// 类名描述:如何使用HUD Text
- /// 作用:把这个脚本绑定在需要使用HUD的GameObject上面,
- /// 日期:2013-09-16
- /// 版本:v0.1
- /// 创建者:赵青青
- /// 修改者:赵青青
- /// </summary>
-
- [AddComponentMenu("GameName/UseHUDExample")]
- public class UseHUD : MonoBehaviour
- {
- public Transform m_target;//HUD字体出现的位置
- public GameObject m_hudTextPrefab;//HUD字体 prefab,不可为空
- HUDText m_hudText = null;//HUD字体
- // 初始化时调用
- void Start ()
- {
-
- if (HUDRoot.go == null) {
- GameObject.Destroy (this);
- return;
- }
- if (m_target == null) {
- m_target=this.transform;
- Vector3 mpos = this.transform.position;
- mpos.y += 2;
- m_target.position = mpos;
- }
- //添加hud text到HUDRoot结点下
- GameObject child = NGUITools.AddChild (HUDRoot.go, m_hudTextPrefab);
- //获取HUDText
- m_hudText = child.GetComponent<HUDText> ();
- //添加UIFollow脚本
- child.AddComponent<UIFollowTarget> ().target = m_target;
- }
-
- // 每帧调用此函数一次
- void Update ()
- {
- if (Input.GetMouseButton (0)) {
- m_hudText.Add ("+100", Color.red, 0);
- }
- if (Input.GetMouseButton (1)) {
- m_hudText.Add ("-30", Color.green, 0);
- }
- if (Input.GetMouseButton (2)) {
- m_hudText.Add ("漂亮!", Color.cyan, 0);
- }
- }
-
- void OnClick ()
- {
- if (m_hudText != null) {
- m_hudText.Add ("HUD TEXT", Color.red, 1.0f);
- }
- }
- }
飘字效果
点击运行,点击屏幕上的cube,看到cube头顶飘出HUD 字体,Good!