自学Unity之做一个MOBA游戏3——血条显示

之前我是看的Unity官网上的Tutoral熟悉的Unity,详情可以看这个链接点击打开链接,视频在YouTube 上需要才可以观看。

最初的时候我是使用Survival shooter 上的资源尝试做这个游戏,写的脚本也是在那个游戏基础上改的,所以对于每类单位(英雄,塔,小兵)分别写了个Health脚本,Attack脚本,和Movement脚本。后来觉得这样不太好,一是脚本太多太杂,比较混乱,二是我每个单位都需要有个攻击目标target,target的类型可能是塔可能是英雄也可能是小兵,定义起来很麻烦,所以我想对于所有单位,写一个Character脚本控制他们的行动,然后对于每一类单位从Character继承。

首先是血条的显示,我打算用Slider来画,首先我用一个 Capsule Object 作为世界之树,然后给它加一个Canvas(Slider必须画在Canvas上),改名为HPCanvas,给这个Canvas再创建一个Slider,然后选中Slider,删除Background,然后再删除Handle Slider area,Rect Transform 选择双Strencth,Slider中的Fill的Rect Transfrom也选择双Strencth,这样就能整个填充到Canvas中去,最后调整Canvas的大小和位置,调整Slider 的 Fill area 的颜色就可以了。效果如下:

自学Unity之做一个MOBA游戏3——血条显示_第1张图片

但是我们发现血条的方向是和Object一样是一个三维的方向,实际游戏中,我们希望血条永远是面朝屏幕以方便我们查看,于是我们在Character脚本中对血条的显示进行调整。

public class Character : MonoBehaviour {
    public float health = 100;
    public Canvas HealthCanvas;
	// Use this for initialization
	void Start () {
	
	}
	
	// Update is called once per frame
	void Update () {
        //调整血条显示方向
        HealthCanvas.transform.rotation = Camera.main.transform.rotation;
	}
}

得到的效果如下:

自学Unity之做一个MOBA游戏3——血条显示_第2张图片

你可能感兴趣的:(Unity,moba,游戏)