unity中UI界面的一些动画实现总结

2023-11-12

在做unity的ui界面的时候,美术通常会实现一些动画效果。这里列举几个:
1、位置的变化
2、旋转的变化
3、缩放的变化
4、alpha的变化
5、颜色的变化

我们举一个例子:
在这里插入图片描述
位置的变化:
(1)target为作用的对象;
(2)curve为曲线变化
(3)duration
(4)startdelay为延迟几秒之后做动画
(5)type为动画类型
(6)loop为循环模式
(7)from是开始的位置,to为结束的位置;
我们这里重点讲解下曲线的使用,是如何采样,并做插值的。

from为起始位置,to为终止位置;通过当前的时间,除以duration做一个线性插值。
curPosition = from*(1-percent)+to*percent; //当percent=0的时候curPostion=from;当percent=1的时候curPostion=to;
这是最常见的插值方式。

这里的percent的计算,是一个当前的时间,作为x坐标,然后从曲线上采样出的y的值。
曲线样子比如为:
在这里插入图片描述
可以发现,x轴为0到1,y轴也为0到1。
我们首先看x轴对应于我们程序中的什么,在动画开始的时候,将累加的时间countdown=0,
每帧countdown+=deltaTime;
x = countdown * 1.0f / duration; //这里的duration为动画的持续时间
我们这里要对x做限制,映射到[0~1]的范围内。这样通过函数:

AnimationCurve curve;
percent = curve.Evaluate(float time);

就可以采样出来曲线的y的值了,然后用y的值,作为插值系数,进行插值。
有人说,是不是可以直接用x作为插值系数呢?可以的,但是这样就是严格的线性插值了。我们可以将曲线提供给美术,让美术去更改插值的系数,这样更灵活。
UI动画的大体的思路如此。虽然只有这么几种动画模式,但是加了动画之后,ui就可以有很多意想不到的效果。

下面有一个具体的应用:
比如比赛视频里的成绩榜,就经常出现下面的效果:
https://www.bilibili.com/video/BV1Ys411u7oq/?spm_id_from=autoNext
在这里插入图片描述
这个在unity的滑动列表中怎么做呢,我们就可以通过上面的组件,对每个item,进行逐个的做动画,以实现。
实现思路:
1、在每个item上加动画组件
2、在update的主循环中逐个进行做动画
3、还未轮到做动画的item,将其初始化为最初始化的状态即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

unity中UI界面的一些动画实现总结 的相关文章

  • Scrum猪和鸡的故事

    本文转载至 http blog csdn net fen0707 article details 8979942 一天 一头猪和一只鸡在路上散步 鸡看了一下猪说 嗨 我们合伙开一家餐馆怎么样 猪回头看了一下鸡说 好主意 那你准备给餐馆卖什么

随机推荐

  • Java Error org.apache.thrift.transport.TTransportException

    org apache thrift transport TTransportException java net ConnectException Connection refused connect org apache thrift t
  • 利用Python绘制中国新型冠状病毒疫情图(国家和省)

    大数据课程设计上来就要求绘制一个地图可以反应出来中国各个省份每日疫情的人数 包括确诊 疑似 死亡 治愈 如下图所示 这里用到了Python中的pyecharts库 点此了解详细信息 1 先来将需要的模块导入进来 import request
  • Windows 系统上如何安装 Python 环境(详细教程)

    一 下载 64位下载链接 https www python org ftp python 3 7 9 python 3 7 9 amd64 exe 32位下载链接 https www python org ftp python 3 7 9
  • QCheckBox复选框状态设置、信号绑定

    一 QCheckBox有两种设置状态 1 setCheckState Qt Checked 设置状态并且发送信号出去 eg for auto itr m mCheckBoxNum begin itr m mCheckBox end itr
  • (Java)leetcode-814 Binary Tree Pruning(二叉树剪枝)

    题目描述 给定二叉树根结点 root 此外树的每个结点的值要么是 0 要么是 1 返回移除了所有不包含 1 的子树的原二叉树 节点 X 的子树为 X 本身 以及所有 X 的后代 示例1 输入 1 null 0 0 1 输出 1 null 0
  • JDBC工作原理

    JDBC程序描述为包含如下过程的应用 1 引入一个必要的类2 加载JDBC驱动程序3 标识数据源 URL Username Password 4 分配一个Connection对象5 分配一个Statement对象6 使用该Statement
  • 阿里云部署Stable Diffusion

    系列文章目录 本地部署Stable Diffusion教程 亲测可以安装成功 Stable Diffusion界面参数及模型使用 谷歌Colab云端部署Stable Diffusion 进行绘图 文章目录 系列文章目录 前言 一 AIGC是
  • 外挂原理

    一 前言 所谓游戏外挂 其实是一种游戏外辅程序 它可以协助玩家自动产生游戏动作 修 改游戏网络数据包以及修改游 戏内存数据等 以实现玩家用最少的时间和金钱去完成功力升级和过关斩将 虽然 现 在对游戏外挂程序的 合法 身份众说纷纭 在这里我不
  • 数据结构——二叉树 增加、删除、查询

    二叉树系统 public class BinarySystem public static void main String args BinaryDomain root null 定义头结点 new BinaryAction manage
  • 1489. 田忌赛马(贪心)

    这是中国历史上的一个著名故事 大约 2300 年前 田忌是齐国的一位将军 他喜欢与国王等人赛马 田忌和国王都有三匹不同等级的马 下马 中马 上马 规则是一场比赛要进行三个回合 每匹马进行一回合的较量 单回合的获胜者可以从失败者那里得到 20
  • 树的算法总结

    写在前言 感谢代码随想录博主 博主是c 代码 此刷题总结是java代码 下文是我学习博主刷题记录的笔记 递归三部曲 找终止条件 什么时候递归到头了 思考返回值 每一级递归应该向上返回什么信息 单步操作应该怎么写 因为递归就是大量的调用自身的
  • java pc计数器_java虚拟机-程序计数器PC Register

    什么是程序计数器 程序计数器是一块 较小 的内存空间 它可以看做是当前线程所执行的字节码的 行号指示器 在虚拟机的概念模型里 仅仅是概念模型 各种虚拟机可能会通过一些更高效的方式去实现 字节码解释器工作时 就是通过改变这个计数器的值来选取下
  • 护网面试总结

    怎么确定一个网站是不是站库分离 1 查询web服务器名 LENOVO GH select servername 2 查询数据库服务器名 DESKTOP 1HV select host name 对比两个查询结果 即可判断 相同则同站同库 不
  • 【杂谈】如果你也23岁

    23岁的时候 你是什么状态 匿名用户 23岁那年 就是去年 在22岁的时候我毕业 同时第二年准备考研 结果因为压力太大 期望太高 又失利了 但是我依然满怀信心和憧憬 在我23岁那年四月 当我深爱的女孩 在这之前我追了她四年 说她要去北京时
  • APP常见崩溃原因和测试方法整理

    APP常见崩溃原因和测试方法整理 测试过APP的人都应该发现 app崩溃是一类非常常见的问题 很多时候还是致命性的 这就要求我们测试人员要尽最大可能去找出软件当中的缺陷 减少app崩溃出现的概率 这里我将收集到的关于针对APP崩溃测试的资料
  • C++实现算法题之奇偶链表

    题目 给定一个单链表 把所有的奇数节点和偶数节点分别排在一起 请注意 这里的奇数节点和偶数节点指的是节点编号的奇偶性 而不是节点的值的奇偶性 示例 1 输入 1 gt 2 gt 3 gt 4 gt 5 gt NULL 输出 1 gt 3 g
  • 6、如何将 Flink 中的数据写入到外部系统(文件、MySQL、Kafka)

    目录 1 如何查询官网 2 Flink数据写入到文件 3 Flink数据写入到Kafka 4 Flink数据写入到MySQL 1 如何查询官网 官网链接 官网 2 Flink数据写入到文件 传送门 Flink数据写入到文件 3 Flink数
  • 黑苹果网站大全

    原文地址 http www cnblogs com wangbin archive 2011 09 17 2179461 html Kexts com 黑苹果驱动大全 InsanelyMac 黑苹果专业网站 netkas org 黑苹果专业
  • QNX驱动开发—进程调度和进程通信

    锋影 e mail 174176320 qq com QNX进程间调度和进程通信切换任务 一 进程调度方法 1 FIFO 先进先出队列法 一个最高优先级的线程可以一直执行到结束或是主动放弃CPU 高优先级的线程可以随时中断低优先级的线程 获
  • unity中UI界面的一些动画实现总结

    在做unity的ui界面的时候 美术通常会实现一些动画效果 这里列举几个 1 位置的变化 2 旋转的变化 3 缩放的变化 4 alpha的变化 5 颜色的变化 我们举一个例子 位置的变化 1 target为作用的对象 2 curve为曲线变