-
1.先制作血条的雏形:
首先在UI中选择Canvas(画布),在Canvas中创建一个Image(图像),然后在lmage中创建一个GameObject(空对象)。先把Image(图像)拉长放在右下角,选择GameObject(空对象)在位置的选择上选择自适应(如图1)。
然后把GameObject(空对象)放在Canvas(画布)下,把Image(图像)放在GameObject(空对象)下,然后在GameObject(空对象)下再创建一个Image(图像),再把两个Image(图像)都打上位置的自适应。 把Image2(图像)颜色改为红色(或你喜欢的颜色)当血条,Image1(图像)不做改动当做血槽(如图2)。


-
2. 然后放置血条:
点击Canvas(画布)在渲染模式下选择世界空间,这样就可以移动Canvas(画布)了(如图3),同也可移动GameObject(空对象)做的血条。移动血条放在需要血条的人物或物体上方(如图4)。同时也要把Canvas(血条)放在人物下(如图2操做),这样就可以随着人物或物体的移动而移动。


-
3.视角跟随:需要血条一直跟随要跟随的视角平行,这样就可以一直看到血条的正面。
首先在Canvas(血条)里创建脚本。然后写代码(如下),再把需要跟随的视角放在Can里。

public class rotate : MonoBehaviour
{
public Transform Can;
// Start is called before the first frame update
private void LateUpdate()
{
transform.LookAt(transform.position + Can.forward);
}
-
4.血量减少:
你可以如图6.1一样修改血条各部分的名字,这样更好分辨。
首先在GameObject(空对象)上创建slider(滑动条),把Image2(图像,血条)放入填充矩形中。然后创建脚本slid,再把slider(滑动条)放入脚本slid中(如图6)。
然后在人物或物体上创建脚本enmary输入血量和关联脚本slid,再把有slider(滑动条)的脚本放入脚本enmary中(如图7)。这样就基本完成了血条的制作。

using System.Collections;
using System.Collections.Generic;
using System.Threading;
using UnityEngine;
using UnityEngine.UI;
public class sild : MonoBehaviour
{
public Slider silder;//定义一个Slider组件的变量名字叫做silder
public void SetMaxHealth(int health)
{
silder.maxValue = health;
silder.value = health;
}
public void SetCurrentHealth(int health)
{
silder.value = health;
}
}//打怪血条掉血

using System.Collections;
using System.Collections.Generic;
using System.Threading;
using UnityEngine;
using UnityEngine.UI;
public class enmary : MonoBehaviour
{
public int hp=5;
public Text Xlinag;
public sild a;
void Start()
{
a.SetMaxHealth(hp);
a.SetCurrentHealth(hp);
}
// Update is called once per frame
void Update()
{
}
private void OnTriggerEnter(Collider other)
{
if (other.tag =="bullet")
{
hp--;
a.SetCurrentHealth(hp);
if (hp == 0)
{
Destroy(gameObject);
}
Xlinag.text = "血量:" +hp;
}
}
}//血量
-
感言: 我本人也是个新手,如果有哪里不正确的,请大家多多指教。