Unity3D——使用UGUI为角色添加名字和血条

       学习Unity3D有一段时间了,庞大的U3D系统可能只学了一些皮毛。最近做东西时又要为怪物制作血条,但一时间竟然忘记了该怎么弄,于是翻翻以前的项目,同时在这里记下来,作为学习参考。

       附注1:这是以前刚开始作为学习笔记的文章,但是这里用的添加无数个Canvas的方法显然不太合适,所以大家看看就好了。

       附注2: 因为怕误导,所以写上另外一种方法出来,通过坐标转换来实现。

——现在的——

通过世界坐标与屏幕坐标转换来实现,其实很简单,直接贴代码(阿蠢:你终于发现以前有多傻)


血条跟随代码

——以前的——

       在这里我使用的是之前学习的时候自己做的一个官方案例《噩梦射手》的加强版本作为参考素材,而UGUI是unity4.6及以上版本才有的功能。那么,话不多说(阿蠢:=_=你已经说了很多了...)

        首先,我们打开Unity3D,在自己的项目中创建一个角色对象,可以用cube之类的代替。这里我放置了3个怪物对象以及1个主角对象(阿蠢:没图说个%&*¥¥@),好吧,上图。

初始场景

        那么,接下来,就是给每个角色添加一个Canvas组件,选中角色对象,右键—UI—Canvas,让Canvas作为角色子物体,此时,你应该看到一个充满游戏界面的Canvas,太大了……(阿蠢:啪!这特么不是废话么!)别急别急,马上解决。我们选中Canvas,将Canvas中的Canvas组件的Render Mode设为World Space,再将其Transform属性的Width和height分别设置为20,10(阿蠢:凭什么听你的,我的属性值我自己调!)经过调整,这时候应该就好多了吧。不过记得也要调整Canvas的位置。

属性面板

        关于Canvas呢,是我们在创建UGUI对象的时候,必须有的一个东西,如同画画,除了画笔,也要有画布才能在上面作画,同时我们创建UGUI对象的时候,也会生成一个EventSystem对象,伴随Canvas的一起出现,要多了解的话,哼哼,去百度吧(阿蠢:不知道就是不知道,没事你装什么装-_=!)

        那么,现在,就是开始正式的创建血条了。我们再Canvas下面创建一个Slider对象,右键-UI-Slider,这个没忘吧(阿蠢:你当所有人都白痴嘛!!)那么,现在是不是又有一个硕大的Slider呢?老样子,选中Slider,调整Slider的Scale大小,X:0.02,Y:0.01,同时调整Slider的位置以适应角色对象。(阿蠢:我说了我自己的属性值我要自己调!)这里,我们注意到Slider下面还有几个子物体,这里我们先去掉HandleSlideArea,这里暂时不需要。然后,BackGround是我们Slider的背景,可以控制我们的血条的背景色,FillArea是我们血条的覆盖色,在这个对象下面还有一个Fill对象,该对象有个Image组件,修改Imgae的Color就可以控制血条的覆盖色了,这里我们可以选择自己的项目所适应的颜色来选择不同的颜色。然后,我们回到Slider组件,我们再Inspector面板中找到Value属性(阿蠢:你该上图了,都说了几百字了)

血条Slider属性面板

        这里,我们看到有个Directon来控制血条的方向,Min Value表示最小值,Max Value表示最大值,我们先如图设置为100,此时Value的滑块跑到最左边去了,那么我们这里滑动滑块,就可以调整当前的血量值,来看看有没有效果?

      注意,我们这里如果添加了能移动的脚本的话,会发现,当角色对象,旋转的时候,我们的血条居然也跟着转了!(阿蠢:我被你骗了,故事不是这样的!)因为Canvas是作为对象的子物体,它的位置是基于父节点的变化而变化,那么这里,我们给Canvas添加一个脚本,就叫做EnemyUiHP吧(阿蠢:我偏不,你个骗子!)。要写的内容也不多

让血条朝向摄像机

         我们再Update函数里面添加了这样一句话,是为了让整个Canvas一直面朝着我们的摄像机,这样无论角色再怎么旋转,我们从摄像机的角度看,面向我们的(脚本中的using UnityEngine.UI是在需要再代码中使用UI对象的时候必须要的一个引用,这里多余了)。试试看吧(阿蠢:万一又不对了呢?)。

          当然,这里的血条还不完全算是血条,因为没有挨打,没有受伤,不会变化,怎么当一个合格的血条君呢?那么,在这里做一个简单的控制血条的方法,当我们的角色在收到伤害的时候,血量要减少,这是,我们可以添加这样几句代码


        这里定义了hpUI对象为Slider组件currentHealth为当前血量,我们在脚本初始化对象时,如再Start()或者Awake()函数中设置血量的初始值,可以先定义一个最大血量值:public float maxHealth=100,  在  Start()  中写入   currentHealth=maxHealth;以及hpUi.maxValue=maxHealth;这样使得血量的最大值就等于我们在脚本中的设置的最大值,之后修改也方便。而如上图在自己定义的受伤的函数中写入hpUI.value=currentHealth。这样当我们的当前血量减少的时候,血条的值也在跟着变化。注意,这里我们使用的hpUI对象是Slider对象,也就是UI对象,这里必须在脚本前引用上面说到的using UnityEngine.UI,否则报错(阿蠢:简直可怕!)

        以上就是我们写使用UGUI编写血条的方法了。虽然废话很多,但是为了清晰且方便刚学的小伙伴理解,就见谅了(阿蠢:行行行,原谅你了。)那么这里就给大家看看我自己做的最终效果版本,同样的方法给角色添加了名字(良辰、美景、奈何天),以及同样使用UGUI制作的小地图等。那么,1,2,3——

最终效果

有不对的地方 or 有问题 or 有经验 or 有建议的可以多多交流~(阿蠢:别逗了,你这么懒,还会有力气和别人交流?)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,716评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,558评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,431评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,127评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,511评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,692评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,915评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,664评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,412评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,616评论 2 245
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,105评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,424评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,098评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,096评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,869评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,748评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,641评论 2 271

推荐阅读更多精彩内容