UGUI实现回合制游戏多技能滑动条与血条伤害
发表于2018-05-14
本篇主要教大家怎么用UGUI实现回合制游戏中的一些功能,包括了多技能滑动条、血条的制作、技能与血条伤害的控制等这些,在开发的时候都是会经常碰到的。

实现滑动方法比较简单。
首先,做一下排列,创建一个空物体,然后添加一个排列的属性,如图:
然后把技能图标都放到该空物体之下,控制其中的一个cell size属性,你会发现很容易就排列好了。
然后,把这个物体放倒一个image下,给image添加一个scroll rect项,这个就是用来控制滑动的,还有添加一个遮罩mask项,通过细微调整里面的属性,以便达到你想要的要求。


2、血条的制作
血条这个比较简单了,原理就是两张图片image,一张是背景,一张作为背景的子项,作为红色的血条。
给背景添加一个slider,把红色血条的图片拖到fill rect属性下,然后就做成了。
3、技能与血条伤害的控制
我用委托来实现的技能的按键,如下代码:
<span style="white-space:pre"> </span>voidStart () { mAnim = GetComponent<Animator>(); mAnim.SetBool ("idle",true); mAnim.SetBool ("skill",false); //EventDelegate AttackEvent = new EventDelegate (this, "OnAttackClick"); //GameObject.Find ("Attack").GetComponent<UIButton> ().onClick.Add (AttackEvent); //imagefill = GameObject.Find ("Canvas").transform.Find ("bloodItem").GetComponent<Image> (); } publicvoid OnAttackClick() { if(isWaitPlayer && ifUIshow) { //mAnim.SetTrigger("attack1"); mAnim.SetBool("idle",false); mAnim.SetBool ("skill",true); isWaitPlayer = false; ifUIshow = false; Debug.Log ("在第"+ index + "回合:主角使用了飞剑斩"); index += 1; print (HP); //GameObject.Find ("ButtonAll").SetActive (false); } //GameObject.Find ("ButtonAll").SetActive (false); GameObject.Find ("Canvas").transform.Find ("ButtonAll").gameObject.SetActive (false); }
伤害与血条部分的控制代码如下图:

该篇是接着上一篇快速实现回合制游戏的补充,把ui部分改成了ugui来写,大家可以作为参考。工程打个包,回复可下载。有问题可以在下面提问或者私聊我。
我自己发现个问题,就是如下图的部分,注释掉,不然会出错,原因是我在面板里已经制指定了,这里就不需要了。
