首页 > 其他分享 >【Unity】进度条和血条的三种做法

【Unity】进度条和血条的三种做法

时间:2024-03-20 13:32:08浏览次数:30  
标签:血条 val 进度条 void 修改 Slider Unity 滑动

前言

在使用Unity开发的时候,进度条和血条是必不可少的,本篇文章将简单介绍一下几种血条的制作方法。

1.使用Slider

Slider组件由两部分组成:滑动区域和滑块。滑动区域用于显示滑动条的背景,而滑块则表示当前的数值位置。用户可以通过拖动滑块来改变数值。
新建Slider,右键选择UI / Slider
在这里插入图片描述
Slider组件的常用属性

  • Fill Rect: 滑动的填充图片,上图中的绿色部分
  • Handle Rect: 滑块块指数当前位置,上图中的圆点。【如果不需要这个,可以直接删掉】
  • Min Value: 滑动的条值小最
  • Max Value: 滑动条的最值大
  • Value : 滑动条的当前值。
  • Whole Numbers : 只允许整值数。
  • Direction : 滑动条的方向,可以是水平或垂直。

程序调用

	public Slider slider;
    void Start()
    {
        //设置血量为一半
        slider.value = 0.5f;
        //监听slider变化
        slider.onValueChanged.AddListener(OnSliderValueChanged);
    }

  
    void OnSliderValueChanged(float val)
    {
        
 
    }

2.修改RectTransform的Width

①新建2个Image,一个充当底图,一个从当进度条
在这里插入图片描述

②修改image的Pivot
Pivot(0,0.5)表示图片的中心点在:左边中间位置
为什么要修改中心点?
那是因为我们的血条是需要从左向右增加的,当然其他方向同理。
在这里插入图片描述代码示例:

	//需要修改的血条
	public RectTransform mRt;
    //血条最大值
    public float max = 200;

    void Start()
    {
        //设置血量为80%
        SetHp(0.8f);
    }
    //设置当前血量
    void SetHp(float val)
    {
        //先取出当前的宽和高
        Vector2 cur = mRt.sizeDelta;
        //得到需要修改的宽度
        cur.x = val * max;
        //重新赋值
        mRt.sizeDelta = cur;
    }

3.修改Image的fillAmount

①首先要修改Image Type为Filled
在这里插入图片描述

②Fill Method:血条的方式
在这里插入图片描述
Horizontal:水平方向
Vertical:垂直方向
Redial 90:以90度为最大值
Redial 180:以180度为最大值
Redial 360:以360度为最大值
在这里插入图片描述
③Fill Origin:血条的起点位置,根据自己的需求选择
在这里插入图片描述
代码示例:

    //需要修改的图片
    public Image mImage;
    
    void Start()
    {
        //设置血量为80%,最大为1
        SetHp(0.8f);
    }
    //设置当前血量
    void SetHp(float val)
    {
        mImage.fillAmount = val;
    }

标签:血条,val,进度条,void,修改,Slider,Unity,滑动
From: https://blog.csdn.net/qq_30144243/article/details/136732835

相关文章

  • unity 设计一个日志系统需要注意什么
    在Unity中设计一个日志系统时,需要注意以下几点:日志级别:为了便于管理和过滤日志,可以为日志系统定义不同的日志级别,例如:Debug、Info、Warning、Error和Fatal。在输出日志时,可以根据当前设置的日志级别来决定是否输出该条日志。日志分类:为了便于查找和分析问题,可以为日志系统定......
  • Unity类银河恶魔城学习记录11-2 p104 Inventoty源代码
     此章节相对较难理解,有时间单独出一章讲一下Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考此代码仅为较上一P有所改变的代码【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibiliInventoryItem.csusingSystem;usingSy......
  • Unity InputField实现框自适应内容简便方法
    要实现InputField框自适应输入内容,除了通过代码进行处理,还可以是使用以下简便的方法。1、创建InputField组件:右键->UI->InputField-TextMeshPro。2、把InputFieldSettings中的LineType设置为MultiLineNewline模式,如下图:3、添加ContentSizeFitter组件,并把Horizo......
  • Android 圆形进度条ProgressBar实现固定进度
    原文:Android圆形进度条ProgressBar实现固定进度-Stars-One的杂货小窝之前遇到一个问题,发现Android里的圆形进度条无法固定一个进度,记录一下解决方法探究假设我们在xml中这样写:<?xmlversion="1.0"encoding="utf-8"?><FrameLayoutxmlns:android="http://schemas.and......
  • Unity新版UI系统UI Toolkit初探
    目前Unity中应用最广泛的官方界面系统是UnityUI,也就是通常说的UGUI。这个系统功能强大,官方支持较好,并且基于GameObject的设计和Unity开发的其他方面是一致的,便于理解和使用。但是,成也GameObject败也GameObject,因为每一个界面元素都要一个GameObject挂上好几个Component,当界面上的......
  • Unity类银河恶魔城学习记录11-1 p103 Item源代码
     Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考此代码仅为较上一P有所改变的代码【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibiliItemData.csusingSystem.Collections;usingSystem.Collections.Generic;usingUn......
  • Unity类银河恶魔城学习记录10-14 p102 Applying damage to skills and clean up源代码
     Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考此代码仅为较上一P有所改变的代码【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibiliEntity.csusingSystem.Collections;usingSystem.Collections.Generic;usingUnit......
  • 随笔-Unity中的ScrollView如何跳转到指定的Item位置
         在我们平时开发滑动列表的UI时,虽然UGUI的ScrollView并不是很好用,但是有时一些非常简单的列表我们没有必要加入一些很复杂的列表插件,用简单的ScrollView就可以完成我们的需求。    我们可以通过计算列表中有多少个Item,再利用ScrollView中Content的长度来......
  • 深入理解 C# Unity 中的事件和委托
    事件和委托是C#Unity游戏开发中的基本概念,可实现游戏不同部分之间的通信和交互。在本文中,我们将以简单的术语探讨这些概念,以帮助Unity项目中利用它们发挥应有的作用目录事件和委托:1.什么是C#事件?2、声明:3.订阅活动:4.发布活动:5.......
  • 基于Unity3d的google小恐龙游戏8-------背景音乐与第六个BOSS
    前言大家好,上一次unity练习记录中我添加了背景以及第五个boss,丰富了一下游戏内容,但是玩的时候发现好像有一些空洞,所以决定再次添加一些东西。本次练习主要是想要搞两个UI,以及背景音乐,然后再添加一个新的boss。其实我也很想再添加一些小怪,这些就是后话了。先把前面三个功能添加......