血条设计 Health Bar
github 项目地址 https://github.com/JennySRH/Health-Bar-3DGAME
游戏视频 https://www.bilibili.com/video/av76306530/
血条(Health Bar)的预制设计。具体要求如下
- 分别使用 IMGUI 和 UGUI 实现
- 使用 UGUI,血条是游戏对象的一个子元素,任何时候需要面对主摄像机
- 分析两种实现的优缺点
- 给出预制的使用方法
IMGUI实现
IMGUI(Immediate Mode GUI)及时模式图形界面。它是代码驱动的 UI 系统,没有图形化设计界面,只能在 OnGUI 阶段用 GUI 系列的类绘制各种 UI 元素,因此 UI元素只能浮在游戏界面之上。
参考前辈的博客https://blog.csdn.net/Runner1st/article/details/80582780 和相应的水平滚动条的API https://docs.unity3d.com/ScriptReference/GUI.HorizontalScrollbar.html 来实现IMGUI版的血条操作,可以通过按钮实现加血和减血的操作,并用插值的方法实现血条平滑变化。最后效果如下图:
实现很简单,直接上代码。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class HealthBar_IMGUI : MonoBehaviour
{
// 最大血量
public float MaxValue = 10.0f;
// 当前血量
public float CurValue;
private float LerpValue;
private void Start()
{
// 默认最大血量是10.