首页 > 其他分享 >制作游戏加载进度条

制作游戏加载进度条

时间:2024-10-30 16:31:03浏览次数:4  
标签:游戏 进度条 float 4.8 private DefLoadTimes Time 加载

首先,我们需要有一个背景进度条,然后在背景下面添加显示百分比的进度条图片,再创建一个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));
    }

}

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

 

标签:游戏,进度条,float,4.8,private,DefLoadTimes,Time,加载
From: https://www.cnblogs.com/qingyuan0213/p/18516076

相关文章

  • NVR录像机汇聚管理EasyNVR多品牌NVR管理工具/设备在内网播放WebRTC流,显示一直加载中是
    在科技日新月异的今天,各行各业都在经历着前所未有的变革。视频监控技术,作为安全防范体系的重要组成部分,更是随着技术的演进不断升级,以适应更加复杂多变的安全需求。NVR录像机汇聚管理EasyNVR,作为一款集视频流处理、录像存储、分发管理等功能于一体的综合性视频监控云平台,正是这......
  • 为.Net项目添加动态库加载路径
    为.Net项目添加动态库加载路径_51CTO博客_linux动态库加载路径本文分别基于.NetFramework和.NetCore的WPF应用程序为例,来说明如何为.Net项目添加自定义动态库加载路径。本文基于.NetCore创建WPF时,使用了.Net5作为目标框架。1、.NetFramework在基于.NetFramework的WPF项目......
  • C++接口集成、身份实名认证-游戏防沉迷,保障未成年人健康
    随着互联网的快速发展,网络游戏在年轻人中越来越受欢迎。然而,未成年玩家长时间沉迷游戏的问题却引发了社会的广泛关注。为了应对这一现象,各大网络游戏平台纷纷引入翔云身份证实名认证接口,以有效辨别用户身份,建立完善的防沉迷系统,从而更好地保护未成年玩家的身心健康。......
  • 解决《地狱之吻》游戏启动DLL文件丢失,这些技巧你需要知道
    当游戏启动时提示丢失DLL文件,这通常意味着你的系统缺少了运行该游戏所需的某个动态链接库文件。以下是一些解决此问题的方法:重新安装游戏:有时游戏安装可能不完整或损坏。尝试完全卸载游戏,然后从官方渠道下载最新版本的游戏安装包,并进行全新安装。检查游戏的系统需求:确保你......
  • 国产游戏技术能否引领全球?
    国产游戏技术能否引领全球?引言近年来,中国游戏产业如同春天的嫩芽,迅速成长为全球最大的市场之一。或许你会想,国内的游戏开发者到底在技术上取得了多大的成就?这些成就又能否推动中国游戏走向世界,甚至引领全球市场?本文将带你深入探讨当前中国游戏市场的现状、文化传播的成功......
  • 【JVM第2课】类加载子系统(类加载器、双亲委派)
    类加载系统加载类时分为三个步骤,加载、链接、初始化,下面展开介绍。文章目录1类加载器1.1引导类加载器(BootStrapClassLoader)1.2拓展类加载器(`ExtClassLoader`)1.3应用类加载器(AppClassLoader)1.4双亲委派2链接2.1验证2.2准备2.3解析3初始化3.1定义3.2主要任......
  • 魔兽争霸和星际争霸这两款游戏到底哪个难度更大
    开篇先说一下结论,那就是这个问题没有固定的答案,这就如同一万个人读《哈姆雷特》就会有一万个哈姆雷特一样,说白了这就是一个见仁见智的事情,不过对于我这种有着快20多年的魔兽争霸和星际争霸游戏经验的来说还是应该说一下自己的一些观点的。这里也不给出个人的结论,而是只说一下个......
  • 「KTSC 2024 R2」跳跃游戏 题解
    睡了一觉,打呼噜被老胡叫醒了/lh睡醒场切,vectorfind是\(O(size)\)的调了40min/fn思路考虑最终得到了\(\mathcalO(Q)\)个连续的\((len,val)\)代表线段长度和线段的\(A_i\),可以用map简单得到。结论:必然存在一种方案,使得在\((i-K,i]\)中必然存在跳跃的起点......
  • [题解][CSP-S2024]擂台游戏
    题意[CSP-S2024]擂台游戏(民间数据)题目描述小S想要举办一场擂台游戏,如果共有\(2^k\)名选手参加,那么游戏分为\(k\)轮进行:第一轮编号为\(1,2\)的选手进行一次对局,编号为\(3,4\)的选手进行一次对局,以此类推,编号为\(2^k-1,2^k\)的选手进行一次对局。第二轮在......
  • 3D Gaussian Splatting代码详解(一):模型训练、数据加载
    1模型训练deftraining(dataset,opt,pipe,testing_iterations,saving_iterations,checkpoint_iterations,checkpoint,debug_from):first_iter=0#初始化高斯模型,用于表示场景中的每个点的3D高斯分布gaussians=GaussianModel(dataset.sh_degree)......