纳金网

标题: 【转载】NGUI做角色HUD血条 [打印本页]

作者: 雅雅    时间: 2013-7-16 20:00
标题: 【转载】NGUI做角色HUD血条
本帖最后由 雅雅 于 2013-7-16 20:02 编辑

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

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

1.png

给摄像机添加一个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);
        }
}

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

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

2.png

▼接着我们添加一个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应该为人物的位置到摄像机位置的向量,否则信息栏会出现偏差。
        }
}

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

7.png

8.png

本文章由末日小生发表在http://2012dream.com


作者: ku    时间: 2013-7-16 20:16
我是直接用unity free版自带的Gui直接在屏幕上画的,不用panel,因为当许多敌人时,用gui底层直接画省不少资源
作者: snake163    时间: 2013-7-16 21:38
呃 长知识了。。
作者: sadrthhvq    时间: 2013-7-17 01:03
感謝分享
作者: animan    时间: 2013-7-18 08:26
感謝分享
作者: aaa120456    时间: 2013-11-19 15:59
学习了,好东西!
作者: crystal7090    时间: 2013-11-19 23:15
正好要开始做这一块,。。
作者: zhangfr    时间: 2013-11-20 14:37
灰常感谢分享
作者: nianhua2008    时间: 2013-12-13 17:45
不错,学习了!
作者: carronailo    时间: 2014-1-17 10:29
用Unity3d原生GUI……那个GC伤不起啊……PC还好说,移动平台是真心完蛋……
作者: ZackD    时间: 2014-1-17 13:05
carronailo 发表于 2014-1-17 10:29
用Unity3d原生GUI……那个GC伤不起啊……PC还好说,移动平台是真心完蛋……

很有感触啊,呵呵
作者: 十六比九    时间: 2014-1-24 12:11
找了一篇教程来学NGUI,没看多久跑出来一句“这里我就不细讲了,具体请自行查阅NGUI手册”
我什么都不说
作者: 川流不息    时间: 2014-2-7 23:04
好东西呀,谢谢楼主了!
作者: wulong    时间: 2014-2-12 08:46
很不错的东西,学习了
作者: Speed608_1    时间: 2014-2-12 13:16
多谢!学习了...
作者: aoikalin    时间: 2014-2-12 14:46
谢谢楼主分享
作者: 川流不息    时间: 2014-2-26 13:40
感谢楼主的无私分享
作者: 离缺    时间: 2014-2-26 16:39
诶,不错哦
作者: pz789as    时间: 2014-2-26 17:28

不错,学习了!
作者: titanko    时间: 2014-3-4 16:17
感謝分享
作者: kakasign    时间: 2014-6-6 14:47
找了一篇教程来学NGUI,没看多久跑出来一句“这里我就不细讲了,具体请自行查阅NGUI手册”
我什么都不说
作者: iam0623    时间: 2014-8-11 11:58
感謝分享。




欢迎光临 纳金网 (http://c-www.narkii.com/club/) Powered by Discuz! X2.5