给场景中的角色添加血条(在脚底)

本文详细介绍如何在Unity中创建半圆形血条UI,包括调整背景、填充图像、设置3D渲染模式、调整大小和位置,以及通过脚本实现血条与角色生命值的同步更新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

(1)新建一个UI>Slider(滑动器),删除Handle Slide Area

(2)将Slider的的Background属性面板中的Source Image修改为Project>packages>Sprites>Health Wheel

(3)将Slider>Fill Area>Fill中的Source Image也同(3)修改

(4)调整大小

大圆圈的调整:Slider文件属性面板Width*Height进行修改;Slider>Background的如图位置修改为四周拉伸(这样会得出一个正常的圆)

小圆圈的拉伸:Fill Area同上操作

(5)将Slider修改为半圈模式Canvas>Slider>Fill Area>Fill的属性面板中的Image(Script)>Image Type修改为Filled模式

(6)保持两个圆圈即Slider和Fill Area保持大小一致,并将Fill的颜色修改为红色

(7)将Canvas设置成3D的UI,这样才能更好的充当血条:在Canvas的属性面板中>Render Mode修改为World Space模式

(8)将Canvas的Width和Height修改为合适值

(9)在Hierarchy中将Canvas放在Camera下,调整到合适的位置,改变其Width和Height值;

(10)完成调整后,X轴旋转90度,使其平铺在的身下

(11)点击属性面板Apply。

(12)通过脚本tankHealth进行UI和血条的相统一

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

using UnityEngine.UI;//8.13)1需要设置一个命名空间以启用UI

public class TankHealth : MonoBehaviour {

    public int hp = 100;//5.31.坦克初始血量为100

    public GameObject tankExplosion;//5.3)6.使用此名称作为坦克预制的内容

    public AudioClip tankExplosionAudio;//7.2)1获取相关的音效

    public Slider hpSlider;//8.13)2申明一个UISlider即滑动条

    private int hpTotal;//8.13)3记录坦克的总血量

    void Start () {

        hpTotal = hp;//8.13)4在开始就记录坦克的血量

    }

    void Update () {

    }

    void TakeDamage()//5.32.当坦克受到攻击时

    {

        if (hp <= 0) return;//5.34.在每次坦克受到攻击之前都要检测坦克是否已经血量不足,如果不足,直接结束

        hp -= Random.Range(10, 20);//5.33.随机减少10-20滴血

        hpSlider.value = (float)hp / hpTotal;//8.135两个都是int类型,需要将其中一个强制转为float类型,两者相除为小数

        if (hp <= 0)//5.35.如果受攻击后血量小于0,则应该控制死忙效果

        {

            AudioSource.PlayClipAtPoint(tankExplosionAudio,transform.position);//7.22当坦克血量不足时,坦克发生爆炸

            GameObject.Instantiate(tankExplosion, transform.position + Vector3.up, transform.rotation);

            GameObject.Destroy(this.gameObject);

            //当满足if条件时,坦克爆炸效果出现,且坦克会升至空中,然后消失

        }

    }

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值