unity 不规则ui进度条带有圆头效果

devtools/2024/11/18 8:20:07/

using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UniRx;
using UnityEngine.UI;

public class Temperature : MonoBehaviour
{
public enum TempType
{
///
/// 电机
///
Motor,

    /// <summary>/// 电池/// </summary>Battery
}[SerializeField] private TempType m_TempType;
[SerializeField] private TMP_Text Text_MotorCurrent;
[SerializeField] private TMP_Text Text_MotorHighest;[SerializeField] private Image Image_Current;
[SerializeField] private Image Image_Highest;[SerializeField] private FillAmountPoint _currentFAP;
[SerializeField] private FillAmountPoint _highestFAP;
[SerializeField] private ImageControl _currentIC;// 起点和终点的填充值
private float fillRangeMin = 0.07f;
private float fillRangeMax = 0.94f;private static readonly string TAG = "Temperature";// Start is called before the first frame update
void Start()
{if (m_TempType == TempType.Motor){DataCenter.MotorTemperature.Subscribe(f =>{if (f == DataCenter.UNDEFIND){Text_MotorCurrent.text = "-.-<size=26>\u2103</size>";Image_Current.fillAmount = 0;SetImageValue(Image_Current,0);}else{if (DataCenter.MotorTemperature_Max.Value < f)DataCenter.MotorTemperature_Max.Value = f;float showValue = BM.Snake.Utils.GetLimitValue(f, -30f, 150f);Text_MotorCurrent.text = $"{showValue:F1}<size=26>\u2103</size>";//  温度范围-30~150SetImageValue(Image_Current, (f + 30f) / 180f);}}).AddTo(this);DataCenter.MotorTemperature_Max.Subscribe(f =>{if (f == DataCenter.UNDEFIND){Text_MotorHighest.text = "-.-<size=26>\u2103</size>";Image_Highest.fillAmount = 0;SetImageValue(Image_Highest, 0);}else{float showValue = BM.Snake.Utils.GetLimitValue(f, -30f, 150f);Text_MotorHighest.text = $"{showValue:F1}\u2103";//  温度范围-30~150SetImageValue(Image_Highest, (f + 30f) / 180f);}}).AddTo(this);}else{DataCenter.BatteryTemperature.Subscribe(f =>{if (f == DataCenter.UNDEFIND){Text_MotorCurrent.text = "-.-<size=26>\u2103</size>";Image_Current.fillAmount = 0;SetImageValue(Image_Current, 0);}else{if (DataCenter.BatteryTemperature_Max.Value < f)DataCenter.BatteryTemperature_Max.Value = f;float showValue = BM.Snake.Utils.GetLimitValue(f, -30f, 60f);Text_MotorCurrent.text = $"{showValue:F1}<size=26>\u2103</size>";//  温度范围-30~60SetImageValue(Image_Current, (f + 30f) / 90f);}}).AddTo(this);DataCenter.BatteryTemperature_Max.Subscribe(f =>{if (f == DataCenter.UNDEFIND){Text_MotorHighest.text = "-.-<size=26>\u2103</size>";Image_Highest.fillAmount = 0;SetImageValue(Image_Highest,0);}else{float showValue = BM.Snake.Utils.GetLimitValue(f, -30f, 60f);Text_MotorHighest.text = $"{showValue:F1}\u2103";SetImageValue(Image_Highest, (f + 30f) / 90f);}}).AddTo(this);}
}private void SetImageValue(Image image, float value)
{float pre = Mathf.Lerp(fillRangeMin, fillRangeMax, value);if (Image_Highest == image){if (_highestFAP) { _highestFAP.SetPreImage(pre); }}else if (Image_Current == image){if (_currentFAP) { _currentFAP.SetPreImage(pre); }if (_currentIC) { _currentIC.SetPreImage(pre); }}image.fillAmount = pre;
}

}


http://www.ppmy.cn/devtools/104892.html

相关文章

提示工程自动化实践

提示工程很糟糕。 这是使用大型语言模型最乏味的部分。这些模型非常挑剔&#xff0c;对提示进行看似无害的更改可能会导致截然不同的结果。我厌倦了手动调整、不系统的变化以及与手动提示工程相关的头痛…… 首先让我们统一认识&#xff0c;提示工程是指对 AI 模型给出的指令…

Python爬虫02

xml 和html 区别 jsonpath模块 场景 多层嵌套的复杂字典直接提取数据 安装 pip install jsonpath使用 from jsonpath import jsonpathret jsonpath(dict, jaonpath语法规则字符串)语法规则 eg: lxml模块&xpath语法 谷歌浏览器 xpath helper 插件 作用对当前页面…

SpringBoot 集成gRPC高性能微服务框架

文章目录 一、gRPC简介二、gRPC特点三、相关资源1. gRPC文档2. Github地址3. protobuf序列化协议4. 本教程源码四、功能实现1. 定义proto接口规范1.1 引入依赖1.2 添加生成protobuf插件1.3 定义.proto文件1.4 生成代码2. 创建 gRPC 服务器2.1 定义注解类,用于扫描 gRPC 相关接…

实战项目:俄罗斯方块(四)

文章目录 &#x1f34a;自我介绍&#x1f34a;按键控制方块函数介绍获取当前时间函数生成随机数种子生成随机数函数示例用法 方块图形方向功能设置生成随机图案擦除图形改变图形左移动右移动下移动 你的点赞评论就是对博主最大的鼓励 当然喜欢的小伙伴可以&#xff1a;点赞关注…

后端微服务架构:构建分布式博客系统

后端微服务架构&#xff1a;构建分布式博客系统 在当今的软件开发领域&#xff0c;微服务架构已经成为构建可扩展、灵活且易于维护的应用程序的主流选择。本文将探讨如何利用微服务架构来设计和实现一个分布式的博客系统。 1. 微服务架构简介 微服务架构是一种将应用程序分解…

NC 最大正方形

系列文章目录 文章目录 系列文章目录前言 前言 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站&#xff0c;这篇文章男女通用&#xff0c;看懂了就去分享给你的码吧。 描述 给定一个由 ‘…

产品网络低价乱价,有哪些控价方法?

电商平台的兴起让产品销售渠道更加多元化&#xff0c;但同时也带来了价格混乱的问题。产品网络低价现象频发&#xff0c;不仅扰乱了市场秩序&#xff0c;损害了品牌形象&#xff0c; 还严重影响了正规渠道经销商的利益。针对这一问题&#xff0c;产品控价成为了企业和品牌方亟待…

探讨Facebook开户广告起充多少:全球标准与优势解析

在数字营销的时代&#xff0c;Facebook广告已成为全球企业进行品牌推广和市场拓展的重要工具之一。然而&#xff0c;对于许多初次接触Facebook广告的企业来说&#xff0c;开户广告的起充标准可能是一个常见的疑问。了解不同国家和地区的起充金额以及Facebook广告的相关优势&…