人物血条的制作_unity基础开发教程

场景创建

随便创建一个地板一个胶囊体,搭建一个简易的场景,我这里就继续使用前面文章创建的场景

在这里插入图片描述

导入素材

  1. 在unity编辑器中选择Window,点击Asset Store
    在这里插入图片描述
  2. 点击Search online
    在这里插入图片描述
  3. 在搜索栏FREE UI
    选择Simple Free Pixel art style…
    点击添加到我的资源
    (弹出窗口点击接收)
    在这里插入图片描述
  4. 添加完成之后,这里有两种方式,先说一下第一种方式:
    1.在unity编辑器中,选择Window,点击Package Manager;
    这里用第二种方法,比较简单;
    2.在弹出的对话框直接点击在Unity中打开
    在这里插入图片描述
    然后点击打开
    在这里插入图片描述
  5. 两种方式调出Package Manager窗口之后
    在搜索框搜索Simple
    选择Simple Free Pixel art styled UI pack
    点击Download
    在这里插入图片描述
    点击Import
    在这里插入图片描述
    点击Import
    在这里插入图片描述
    然后素材就导入完成了
    在这里插入图片描述

血条制作

  1. 在Hierarchy窗口右键,选择UI,点击Image,并命名healthBar
    并将Canvas命名为Health
    在这里插入图片描述
    然后再选中Health,再创建一个Image,并命名healthFill
    在这里插入图片描述
    整体
    在这里插入图片描述
  2. 选中Health,并将Inspector窗口中的Render Mode属性更改为World Space
    在这里插入图片描述
    并将摄像机Main Camera挂载到Event Camera
    在这里插入图片描述
  3. 选中healthBar和healthFill,将两者的Anchor Presets都改为stretch,
    (注意:按住Alt键的同时,那个九宫格的东西会变化,然后在变化的状态下点击最右下角的那个图标)
    在这里插入图片描述
  4. 选中Health,拖到Player里,成为Player的子物体;
    并且按照下面的图片修改Health的大小和位置(这里我已经调试好了,也可自行调整)
    PosX:0 PosY:2 PosZ:0
    Width:1 Health:0.1
    在这里插入图片描述
  5. 同时选中healthBar和healthFill;
    将前面素材里面的health_bar图片拖到两个物体的Source Image属性栏
    在这里插入图片描述
  6. 选中healthFill;
    将Inspector监视器窗口中的Color改为红色;
    Image Type改为Filled
    Fill Method改为Horizontal
    Fill Origin改为Left(默认就是Left)
    在这里插入图片描述
    到这里血条就制作好了,

下面就是代码部分,由于篇幅问题,这里只做简单的血量增加和减少的效果,不做受到攻击和恢复的实际场景;


实际游戏场景中的血量增加与恢复涉及到的物体代码相对复杂,后续文章会讲解

血量控制代码部分

  1. 在资源窗口创见一个Script文件夹(管理代码文件,养成良好的归纳习惯);
    创建一个C#脚本文件,命名Blood Manager
    在这里插入图片描述
  2. 双击打开代码文件,键入下面代码,然后保存
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class BloodManager : MonoBehaviour
{
    Image image;
    [SerializeField]float currentBlood = 1f;
    [SerializeField] float targetBlood = 1f;
    [SerializeField] Color bloodColor = Color.red;
    [SerializeField] float bloodMoveSpeed;
    // Start is called before the first frame update
    void Start()
    {
        image = GetComponent<Image>();
        image.color = bloodColor;
        image.fillAmount = currentBlood;
    }

    // Update is called once per frame
    void Update()
    {
        checkedKey();
        if (currentBlood != targetBlood)
        {
            currentBlood = Mathf.Lerp(currentBlood,targetBlood,bloodMoveSpeed*Time.deltaTime);
            image.fillAmount = currentBlood;
        }
    }

    private void checkedKey()
    {
        if (Input.anyKeyDown)
        {
            if (Input.GetKeyDown(KeyCode.J))
            {
                targetBlood = 0.2f;
            }
            else
            {
                if (Input.GetKeyDown(KeyCode.K))
                {
                    targetBlood = 0.8f;
                }
            }
        }
    }
}

  1. 将Blood Manager代码文件,挂载到healthFill
    在这里插入图片描述
    你可能好奇另一个代码文件是啥,这是另一篇文章里讲的,想了解的话请移步我的另一篇文章
    AI Navigation导航系统_unity基础开发教程

到这里就完成了,可以运行看看效果,

J键是减血;
K键是加血;


需要注意
运行前别忘了修改Bolld Move Speed的值(不然按键是没有反应的),这里建议改为2,也可以根据自己的需求自行修改

在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿松爱睡觉

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值