教你用简单上手的序列帧动画制作一个Unity的Loading加载界面

本文主要是介绍教你用简单上手的序列帧动画制作一个Unity的Loading加载界面,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

请添加图片描述

文章目录

      • 👉一、Loading界面序列帧动画原理
      • 👉二、准备工作及搭建demo场景
      • 👉三、核心代码及演示效果
        • 1、核心脚本代码
        • 2、帧动画加载界面效果

👉一、Loading界面序列帧动画原理

我们都知道电影或者说视频都是由一序列静止画面组成的。动画也是在一段时间内显示的一序列图像,每一帧较前一帧都有轻微的变化,当连续、快速地显示这些帧时,就会产生运动或者变化的错觉。基于此原理,我们Unity也有序列帧动画的概念,即我们可以在一定帧时间内改变Image对象上的精灵图,使数张“看上去相似、但实际上是有轻微变化”的图片交替更换,形成帧动画的效果。

👉二、准备工作及搭建demo场景

1.在搭建demo场景之前,先准备好Loding的精灵图集。我这里采用的是Resources加载的方式,所以我在Resources文件夹下新建了个sprite文件夹存放这些图集,图片类型必须指定为Sprite(2D and UI)。
2.开始答题demo场景:新建Image命名为bg作为背景图,新建Image命名为spriteImg作为bg子物体,用来作显示序列帧动画的载体,默认先设置为图集的第一张图片;新建Text作为bg子物体,用作显示加载的百分比值。界面效果如下:
在这里插入图片描述

👉三、核心代码及演示效果

1、核心脚本代码

新建脚本命名为SpriteAnim,挂载到bg物体上,写上如下代码:
(这里写的进度值只是demo用来模拟加载显示的,可以更改为你真实加载资源计算出来的进度值逻辑)

public class SpriteAnim : MonoBehaviour
{private Image spriteImg;//帧动画载体图private Text progressText;//百分比文本private Sprite[] sprites;//缓存精灵图的数组private int spriteCount = 0;//图片下标计数private bool isPlaying = true;//是否正播private bool isFinish = false;//是否完成加载private int percent = 0;//用来计算百分比的值private float time = 0;//控制时间间隔void Start(){spriteImg = transform.Find("spriteImg").GetComponent<Image>();progressText = transform.Find("Text").GetComponent<Text>();sprites = Resources.LoadAll<Sprite>("sprite");//一次性加载精灵图保存到数组StartCoroutine(SpriteAnimControl(60f));//开启序列帧动画}void Update(){if (!isFinish)//加载为完成,一直显示帧动画,知道进度值达到100%{time += Time.deltaTime;if (time>0.3f){time = 0;percent++;}progressText.text = string.Format("{0}%", percent);//格式化输出百分比if (percent>=100){isFinish = true;//这里可以写隐藏当前loading加载界面,或者加载场景等其他逻辑}}}/// <summary>/// 序列帧动画的协程/// </summary>/// <param name="second"></param>/// <returns></returns>IEnumerator SpriteAnimControl(float second){while (!isFinish){yield return new WaitForSeconds(1 / second);//每隔1/second秒替换精灵图,实现序列帧动画效果if (spriteCount<sprites.Length-1 && isPlaying)//正播{spriteCount++;if (spriteCount == sprites.Length - 1)//下标等于数组最后一个时转为倒播{isPlaying = false;}}else//倒播{spriteCount--;if (spriteCount == 0) //下标等于数组第一个时转为正播{isPlaying = true;}}spriteImg.sprite = sprites[spriteCount];//更换Image载体的精灵图}}
}
2、帧动画加载界面效果

请添加图片描述

这篇关于教你用简单上手的序列帧动画制作一个Unity的Loading加载界面的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/355677

相关文章

springboot项目打jar制作成镜像并指定配置文件位置方式

《springboot项目打jar制作成镜像并指定配置文件位置方式》:本文主要介绍springboot项目打jar制作成镜像并指定配置文件位置方式,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录一、上传jar到服务器二、编写dockerfile三、新建对应配置文件所存放的数据卷目录四、将配置文

Spring如何使用注解@DependsOn控制Bean加载顺序

《Spring如何使用注解@DependsOn控制Bean加载顺序》:本文主要介绍Spring如何使用注解@DependsOn控制Bean加载顺序,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录1.javascript 前言2. 代码实现总结1. 前言默认情况下,Spring加载Bean的顺

CSS3打造的现代交互式登录界面详细实现过程

《CSS3打造的现代交互式登录界面详细实现过程》本文介绍CSS3和jQuery在登录界面设计中的应用,涵盖动画、选择器、自定义字体及盒模型技术,提升界面美观与交互性,同时优化性能和可访问性,感兴趣的朋... 目录1. css3用户登录界面设计概述1.1 用户界面设计的重要性1.2 CSS3的新特性与优势1.

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

springboot加载不到nacos配置中心的配置问题处理

《springboot加载不到nacos配置中心的配置问题处理》:本文主要介绍springboot加载不到nacos配置中心的配置问题处理,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录springboot加载不到nacos配置中心的配置两种可能Spring Boot 版本Nacos

C/C++ chrono简单使用场景示例详解

《C/C++chrono简单使用场景示例详解》:本文主要介绍C/C++chrono简单使用场景示例详解,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友... 目录chrono使用场景举例1 输出格式化字符串chrono使用场景China编程举例1 输出格式化字符串示

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

IDEA下"File is read-only"可能原因分析及"找不到或无法加载主类"的问题

《IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题》:本文主要介绍IDEA下Fileisread-only可能原因分析及找不到或无法加载主类的问题,具有很好的参... 目录1.File is read-only”可能原因2.“找不到或无法加载主类”问题的解决总结1.File