分享

【转载】NGUI做角色HUD血条

 kiki的号 2017-02-24
pstatus"> 本帖最后由 雅雅 于 2013-7-16 20:02 编辑

之前做游戏demo的时候要用到HUD血条,从网上找资料,基本没有多少有用的信息,后来用雨松大大的GUI方法实现了,但是由于GUI是渲染在顶层的,不会被物体遮挡,并不是我想要的效果。经过摸索,终于用NGUI实现了HUD血条的做法,现在分享给大家~~

▼首先准备好你的场景(角色,地形,摄像机,灯光)



给摄像机添加一个Look At Target脚本,并将其Target设为人物。
接着自己写一个脚本Camera Round,拖给摄像机,让摄像机绕着人物旋转。
using UnityEngine;
using System.Collections;
public class cameraRound : MonoBehaviour {
       public GameObject hero;
        void Update () {
        gameObject.transform.RotateAround(hero.transform.position,Vector3.up,0.1f);
        }
}

准备好场景之后,我们就来开始实现血条的制作咯~

▼首先,生成一个空对象,并调整其位置在角色正下方。



▼接着我们添加一个panel作为这个空对象的子物体。(需要NGUI插件)

3.png

4.png

▼接下来就是往panel上添加信息了这里我就不细讲了,具体请自行查阅NGUI手册

5.png

▼这里我添加了一个血条和label(用来显示名称等信息)(血条用simple Texture做)
然后给血条加上图片,label里输入人物的名称,调整他们的位置

6.png

接下来就是很重要的代码部分了。
给人物添加一个脚本,命名为blood_bar。
using UnityEngine;
using System.Collections;
public class blood_bar : MonoBehaviour {
        public GameObject _bloodBar;//获取血条信息。
        public GameObject MainCamera;//获取主摄像机        
        void Update () {
                _bloodBar.transform.position=new Vector3(transform.position.x,transform.position.y+2.0f,transform.position.z);//让血条信息一直处于人物的头顶某处
                Vector3 v=transform.position-MainCamera.transform.position;
                Quaternion rotation;
                rotation = Quaternion.LookRotation(v);
                _bloodBar.transform.rotation = rotation;//让血条一直面向摄像机。由于摄像机是以人物为目标的,所以v应该为人物的位置到摄像机位置的向量,否则信息栏会出现偏差。
        }
}

▼运行游戏, 不管摄像机怎么旋转,血条总是面向摄像机。大功告成~





本文章由末日小生发表在http://

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多