不使用Unity插件实现角色血条

见过NGUI实现的,但是UI的摄像机与场景摄像机不是一个摄像机,就会造成当角色被树木等建筑物拦住时血条仍会显示、当然由于镜头的拉远拉近血条大小不变等问题。

下面用Unity的API实现并渲染一个血条,先上最终结果图

准备工作:一张血条图片,上下左右都会有黑色像素来做为血条的边框,新建一个材质球,绑定到此图片,Shader选择为 Unlit/Texture

新建空物体,加入如图所示的组件:

运行即见效,主要的原理是这个Hp_bar这个脚本里面。


主要的原理还是很简单的:

首先确定血条上的10个顶点位置,以下列序号和位置分布:

0,1,2,3,4

5,6,7,8,9

三角形的连接是 015   516  126 以此类推,顺时针连接。

UV分布0到1(5到6)为血条的最左面,可以理解为九宫格的左边,1到2(6到7)为九宫格的中间区,2到3(7到8)为九宫格的右区间,3到4(8到9)为黑色边框。

地址: https://github.com/pingzi1066/HPBar


后续建议 :)

假如有做摄像机移动动画的话,血条应该面向摄像机,这个是问题(或许可以用Unity粒子的方式解决)。当然没有动画的话,可以在一开始就设置好旋转。