制作游戏加载进度条

news/2025/1/18 16:50:33/文章来源:https://www.cnblogs.com/qingyuan0213/p/18516076

首先,我们需要有一个背景进度条,然后在背景下面添加显示百分比的进度条图片,再创建一个Text,用于显示具体的百分比数字

大致结构如下:

然后就是通过代码实现这个功能了:

[SerializeField]
private Image ProcessBar;
[SerializeField]
private Text ProcessText;
private float DefLoadTimes = 4.8f;//主体进度默认需要花的时间 单位:秒
private float DefPercent = 0.8f;//主体进度值 private void UpdateLoadProcess()
{if (Time.timeSinceLevelLoad < DefLoadTimes){ProcessBar.fillAmount = (Time.timeSinceLevelLoad / DefLoadTimes) * DefPercent;}else{ProcessBar.fillAmount = Mathf.Min(0.98f, DefPercent + (Time.timeSinceLevelLoad - DefLoadTimes) / (DefLoadTimes * 2.0f) * (0.98f - DefPercent));}ProcessText.text = (ProcessBar.fillAmount * 100) + "%";
}

将这个UpdateLoadProcess放入Unity的生命周期函数Update中即可实现进度条加载的效果,如果需要在某个时机调用,那么在Udapte里面做条件判断即可。

上述代码用到的Time.timeSinceLevelLoad是Unity记录场景时间的,如果我们想要自己控制,比如游戏内某个不需要切换场景,但是要实现进度条的功能,我们可以直接用计时器的写法来控制:

public static float start_Time = 0;
public static float UpdateLoadProcess()
{float elapsedTime = Time.time - start_Time;if (elapsedTime < 4.8f){return (elapsedTime / 4.8f) * 0.8f;}else{return Mathf.Min(0.98f, 0.5f + (elapsedTime - 4.8f) / (4.8f * 2.0f) * (0.98f - 0.8f));}}

下面的写法就没有使用各种变量代替参数了,具体调整可以结合两个方法

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/824198.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Unity】Addressables下的图集(SpriteAtlas)内存优化

前言:资源管理系统:AddressablesUI:模拟NGUI图集Sprite,在UGUI下继承Image增加UIImage组件,实现将SpriteAtlas组件拖拽到属性面板上,切换选择里面的小图问题:在检查项目内存占用过高问题时,发现直接拖拽上去的资源不受Addressables系统的自动引用管理,导致部分资源虽然…

O(∩_∩)O哈哈~

本文来自博客园,作者:一石数字欠我15w!!!,转载请注明原文链接:https://www.cnblogs.com/52-qq/p/18516047

我用这个 AI 工具生成单元测试,简直不要太爽!

本文分享如何使用驭码CodeRider 的单元测试功能生成单元测试文件。 在之前的文章如何用 Python 手撸一个 GitLab 代码安全审查工具?中,我用 Python 写了一个接受极狐GitLab 代码安全审计事件流并且将消息推送到钉钉群的脚本,完整的 python 代码为:from fastapi import Fast…

Ansible原理和安装

一.概念 简介 Ansible是一个IT自动化工具。它能配置系统、部署软件、编排更复杂的IT任务,如连续部署或零停机时间滚动更新。连接其他主机(管理节点)默认使用ssh协议 特性 Agentless:不需要在被管理节点上安装客户端,只要有sshd即可Serverless:在服务端不需要启动任何服务,…

明火识别视频分析服务器区域入侵智慧园区安防视频监控及动态布控预警方案

智慧园区安防视频监控及动态布控预警方案是一种综合性的安全管理解决方案,它通过结合视频监控技术、人工智能算法、大数据分析等技术,实现视频分析服务器对工厂区域内人、车、物的全面监控和管理。一、需求和目标系统建设目标:搭建重点部位人脸识别动态布控系统平台,建立动…

四、常用寄存器

DS:内存段地址寄存器 段地址、偏移地址与物理地址内存中数据的地址由段地址和偏移地址组成,其中段地址乘以16再加上偏移地址就是真实的物理地址。对于16进制的数来说,乘以十六就是整体向左移一位,例如:0xFE * 16 = 0xFE0物理地址可以由多种段地址+偏移地址组合而成例如物理…

HTTPS 加密方式

1. HTTP 和 HTTPSHTTP是明文传输,敏感信息容易被中间劫持。 HTTPS = HTTP + 加密,即使传输的数据被劫持了也无法解密。 2. 加密方式:对称加密,非对称加密 对称加密 用同一个key加密解密。 非对称加密 一对key(公钥私钥),公钥加密,私钥解密(or反过来)。 具体实现: 1.…

基于贝叶斯优化CNN-LSTM网络的数据分类识别算法matlab仿真

1.算法运行效果图预览 (完整程序运行后无水印)BO优化前 BO优化过程 BO优化后 2.算法运行软件版本 matlab2022a3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)MBsize = 32; Lr = 0.1; % CNN LSTM构建卷积神经网络 layers = func_model(Nclass,…

WD MYbook存储硬盘数据恢复

WD MYBOOK存储硬盘数据恢复是一个相对复杂但可行的过程,以下是一些建议的恢复方法: 一、硬件检查与恢复 检查连接线: 重新插拔连接线,确保连接稳固且没有损坏。 如果连接线有问题,尝试更换一条新的连接线。 2.更换电脑设备: 如果在一个电脑上无法识别移动硬盘,可以尝试将…

【算法】前缀树

前缀树(Trie 树) 基本内容以树的方式存储字符串的数据结构,方便字符串的查找及判断是否为某一字符串的前缀入门例子 PHONELST - Phone List - 洛谷 | 计算机科学教育新生态题目要求:判断一组字符串中是否存在某一字符串是另一字符串的前缀。例如在{“911”, “91140”,“…

Python工具箱系列(五十七)

图像分割与人脸识别 众所周知图像是由若干有意义的像素组成的,图像分割作为计算机视觉的基础,对具有现有目标和较精确边界的图像进行分割,实现在图像像素级别上的分类任务。图像分割可分为语义分割和实例分割两类,区别如下: 语义分割:将图像中每个像素赋予一个类别标签,…

Nuxt.js 应用中的 imports:dirs 事件钩子详解

title: Nuxt.js 应用中的 imports:dirs 事件钩子详解 date: 2024/10/30 updated: 2024/10/30 author: cmdragon excerpt: imports:dirs 是 Nuxt.js 中的一个生命周期钩子,用于扩展导入目录。通过这个钩子,开发者可以灵活地添加、修改或删除项目中的导入目录,从而提高模块…