Unity Dotween 定位点的制作

目录

前言

一、动画预览

二、动画拆分

三、素材准备

四、曲线 OutCirc详解

五、速度分类详解

六、代码

 七、组件和设置

八、作者的话


前言

我答应我的粉丝接下来更新Dotween系列,但是我一直没想好,从哪里开始讲。

Dotween的安装我就跳过了,因为这个到处都有。

最后思考了一下,从常用案例开始讲吧,对案例有需求的也可以写在评论区中。

一、动画预览

一般定位点很喜欢用这个动画(如图1所示),但如果用视频或者序列帧,有点大材小用了,灵活性都不太好,因此,这里用简单的图片来制作这个动画。

图1 定位点

二、动画拆分

这是由两个相同动画的圈组成的,只不过他们一个慢了0.5秒开始播,所以单个圈的动画(如图2所示)。

图2 单个圆圈

 单个圆圈再拆分:

大小角度:如果把圆最大的时候当做1,它是从1/4的时候开始逐渐变大。

出现和消失角度:假设这个圆的动画是1秒,前1/3秒在逐渐出现,然后花了1/4秒消失,余下的时间全黑,什么都看不见。

三、素材准备

只需要一个透明白色的圈(如图3所示),你实在没有,去PPT里画一个?下面这个图是不能用的哈,只是给你们示例一下啊。

图3 透明圈

四、曲线 OutCirc详解

dotween里面的曲线有很多,但up认为,如果你没有仔细观察过,最后是不知道哪个用起来效果更好的,所以这里带大家观察一下这个曲线。

Circ:圆形曲线的缓动( sqrt(1-t^2))

注释:sqrt是根号的意思,这个公式其实是\sqrt{1-t^2},图像(如图4所示)

图4 sqrt(1-t^2)的图像

这段有兴趣的可以看一下:

把这个公式稍微变一下

1.把t变成x

2.变成等式

y=\sqrt{1-x^2}

再变一下

1=x^2+y^2

是不是就很眼熟了,这是圆形公式,再去看他的英文Circ = Circle

是不是一切都说通了。

五、速度分类详解

这里引用了以下两个文章的内容,侵权立删。

Unity Dotween插件的运动曲线(Ease)介绍Ease选项Ease效果示例以及C#修改动画曲线功能_dotween ease-CSDN博客

Unity Dotween Ease曲线 图表 效果展示_dotween曲线展示-CSDN博客

实际曲线图像(如图5所示)

图5 Circ的三种曲线

一个好好的圆形图像变成了这样,是因为取的时间不是匀速的,有时候快有时候慢。
In:            从0开始加速
Out:         减速到0
lnOut:      前半段从0开始加速,后半段减速到0的缓动

实际动画图像

图6 InCirc介绍

InCirc介绍(如图6所示):时间越来越快,变得越来越快,曲线比较接近圆弧

图7 OutCirc介绍

OutCirc介绍(如图7所示):时间越来越慢,变得越来越慢,曲线比较接近圆弧

图8 InOutCirc介绍

InOutCirc介绍(如图8所示):先按InCirc运动,再按OutCirc运动,所以是慢-快-快-慢

六、代码

按照之前动画拆分,把每一步都做了

//找到设置大小的组件
    public RectTransform rect;
    //找到图片
    private Image img;
    //记录初始大小
    private Vector2 origSize;

    //动画持续时间
    public float duration;
    //动画延迟时间
    public float delay;

    void Start()
    {
        //图片复制
        img = rect.GetComponent<Image>();

        //初始化透明度
        img.DOFade(0, 0);

        //记录初始大小
        origSize = rect.sizeDelta;

        //设置初始大小为四分之一
        rect.sizeDelta = origSize / 4f;

        //执行动画
        StartCoroutine(Delay());

    }

    IEnumerator Delay()
    {
        //动画延迟几秒执行
        yield return new WaitForSeconds(delay);
        //执行动画
        Animate();
    }

    public void Animate()
    {
        //建立动画队列
        Sequence s = DOTween.Sequence();
        //加入动画              让图片在duration秒内变回初始大小           //选择OutCirc曲线
        s.Append(rect.DOSizeDelta(origSize, duration).SetEase(Ease.OutCirc));
        //和上面一起开始的动画    把图片透明度变成1,用1/3的总时长
        s.Join(img.DOFade(1, duration / 3));
        //和上面一起开始的动画    把图片透明度变成0,用1/4总时长,但需要延迟1/3的总时长再执行
        s.Join(img.DOFade(0, duration / 4).SetDelay(duration / 1.5f));
        //重复播放
        s.SetLoops(-1);
    }

 七、组件和设置

新建两个圆圈,把之前准备的图片放上去(如图9所示)

图9 两个圆圈

再把前面写的脚本挂上去。

Circle1脚本组件(如图10所示)

图10 Circle1脚本组件

Circle2脚本组件(如图11所示) 

图11 Circle2脚本组件

八、作者的话

 Dotween的基础知识这里还是用了比较多的,如果大家在评论区有问题,我也可能专门写一篇文章来讲解这部分。感谢大家的支持,ღ( ´・ᴗ・` )比心~

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

一款220V降12V恒压芯片电路原理图WT5114

一款220V降12V恒压芯片电路原理图WT5114&#xff0c;电路图简示如下&#xff1a; 一款220V降12V恒压芯片线路图WT5114 WT5114是一款高性能、高精度、低成本的PWM电源开关&#xff0c;适用于非隔离降压和反激式应用。它集成了专用电流模式PWM控制器&#xff08;采用SOP8封装的高…

埃及媒体分发投放-新闻媒体通稿发布

埃及商业新闻 大舍传媒近日宣布将在埃及商业新闻领域展开新的媒体分发投放。作为埃及最具影响力的商业新闻平台之一&#xff0c;埃及商业新闻将为大舍传媒提供广阔的市场和受众群体。这一合作意味着大舍传媒将有机会通过埃及商业新闻的平台向埃及的商业精英和投资者传递最新的…

ACM Proceedings Template 使用方法

模板导入 打开ACM Primary Article Template官网&#xff0c;可以看到自带overleaf模板&#xff0c;接下来我们使用overleaf来自动导入模板。 选择你需要的ACM Conference or Journals模板&#xff0c;然后Open as Template 栏目说明 接下来依次解释一下左边栏目的作用 …

mail发送调用接口如何与三方服务无缝对接?

mail发送调用接口的性能怎么样&#xff1f;调用邮件接口的技巧&#xff1f; 为了提高效率和自动化水平&#xff0c;企业通常会选择使用mail发送调用接口。然而&#xff0c;仅仅使用这些接口还不够&#xff0c;如何与各种第三方服务无缝对接同样至关重要。AokSend将探讨如何有效…

再创佳绩丨达梦数据库一体机荣获2024数字中国创新大赛·信创赛道总决赛一等奖

5月24日&#xff0c;第七届数字中国建设峰会在福州盛大开幕&#xff0c;峰会内容安排包含开幕式、主论坛、分论坛、数字中国创新大赛、现场体验区及成果发布和专业工作会议等。武汉达梦数据库股份有限公司(以下简称达梦数据)受邀参加并在展、会、赛等多个环节深度参与。达梦全栈…

mac M3芯片 goland 2022.1 断点调试失败(frames are not available)问题,亲测有效

遇到如上问题&#xff0c;解法 步骤1&#xff1a;下载dlv文件 执行 go install github.com/go-delve/delve/cmd/dlvlatest 然后在 $GOPATH/bin里发现多了一个dlv文件 (找不到gopath? 执行 go env 可以看到) 步骤2&#xff1a;配置dlv 将这个dlv文件移到 /Applications/G…

vue中在mounted使用$refs获取不到DOM元素

vue中在mounted使用$refs获取不到DOM元素 前言解决方案1、通过使用$nextTick来获取2、updated中获取 前言 在使用ref的时候&#xff0c;在mounted中通过$ref获取节点是获取不到报undefined this.$refs.xx 为 undefined 解决方案 在mounted钩子中加载回来的数据不会在这个阶段更…

webpack5_相关知识点

webpack是一个现代JavaScript应用程序的静态模块打包器(module bundler) &#xff0c;是前端资源模块化管理和打包工具&#xff0c; 它可以将许多松散耦合的模块按照依赖和规则打包成符合生产环境部署的前端资源。还可以将按需加载的模块进行代码分离&#xff0c;等到实际需要时…

Python 读取.shp文件并生成图幅编号

代码适用于需要处理和分析地理空间数据的场景&#xff0c;如城市规划、环境监测或自然资源管理&#xff0c;其中它可以帮助用户读取特定区域的Shapefile文件&#xff0c;确定其地理边界&#xff0c;并基于这些边界计算出按照经纬度5度间隔的图幅编号&#xff0c;进而用于地图制…

Hive环境搭建

1 安装Hive 下载文件 # wget -P /opt/ https://mirrors.huaweicloud.com/apache/hive/hive-2.3.8/apache-hive-2.3.8-bin.tar.gz 解压缩 # tar -zxvf /opt/apache-hive-2.3.8-bin.tar.gz -C /opt/ 修改hive文件夹名字 # mv /opt/apache-hive-2.3.8-bin /opt/hive 配置环境变量 …

力扣HOT100 - 138. 随机链表的复制

解题思路&#xff1a; class Solution {public Node copyRandomList(Node head) {if(headnull) return null;Node p head;//第一步&#xff0c;在每个原节点后面创建一个新节点//1->1->2->2->3->3while(p!null) {Node newNode new Node(p.val);newNode.next …

场景文本检测识别学习 day10(MMdetection)

配置文件(config) 由于在大型项目中&#xff0c;一种模型需要分&#xff1a;tiny、small、big等很多种&#xff0c;而它们的区别主要在网络结构&#xff0c;数据的加载&#xff0c;训练策略等&#xff0c;且差别很多都很小&#xff0c;所以如果每个模型都手动从头写一份&#…

文生图模型演进:AE、VAE、VQ-VAE、VQ-GAN、DALL-E 等 8 模型

节前&#xff0c;我们星球组织了一场算法岗技术&面试讨论会&#xff0c;邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集&#x…

【强训笔记】day24

NO.1 思路&#xff1a;递归。 代码实现&#xff1a; class Solution { public:bool IsBalanced_Solution(TreeNode* pRoot) {return dfs(pRoot)!-1;}int dfs(TreeNode* root){if(rootnullptr) return 0;int leftdfs(root->left);if(left-1) return -1;int rightdfs(root-…

如何使用甘特图来做任务管理?zz-plan甘特图的实践指南

在项目管理和任务调度中&#xff0c;甘特图是一种非常实用的工具&#xff0c;它可以帮助团队成员清晰地规划、执行和跟踪项目进度。然而&#xff0c;如何有效利用甘特图进行任务管理&#xff0c;对于许多团队来说仍然是一个挑战。本文将结合 zz-plan https://zz-plan.com/ 甘特…

jmeter服务器性能监控分析工具ServerAgent教程

ServerAgent介绍&#xff1a;支持监控CPU&#xff0c;memory&#xff0c;磁盘&#xff0c;网络等&#xff0c;和JMeter集成&#xff0c;在JMeter的图形界面中&#xff0c;可以实时看到监控的数据&#xff0c;但是&#xff0c;它只能监控硬件资源使用情况。 不能监控应用服务 S…

天若OCR 识别 (本地文字识别转换工具)

前言 天若OCR文字识别本地版是一款在天若OCR文字识别工具v5.0免费开源版的基础上采用Chinese-lite框架和Paddle-ocr框架本地化识别接口编译而成,无需联网也无需申请密钥&#xff0c;纯本地运算&#xff0c;识别准确度和速度很快&#xff0c;操作和天若OCR免费版一样&#xff0…

解决:error: failed to push some refs to ‘https://gitee.com/***/***.git‘(高效快速)

解决方案&#xff1a; git pull --rebase origin master 具体原因&#xff1a; 主要原因是gitee(github)中的README.md文件不在本地代码目录中 要执行git pull --rebase origin master命令将README.md拉到本地 然后就可以执行git push啦 写在最后&#xff1a; 要是问题得到…

实验四 网络的路径与连通性

文章目录 4.1 网络的路径与连通性第1关&#xff1a;路径与初始距离矩阵的构建第2关&#xff1a;由网络邻接矩阵求初始距离矩阵方法第3关&#xff1a;网络中任意两点的最短路径求解 4.2 网络连通性第1关&#xff1a;网络节点间的可达性判断第2关&#xff1a;邻接矩阵转换可达矩阵…

Java基础之 API 字符串

文章目录 API字符串String概述创建对象 java的内存模型java的常用方法(比较)练习 API 概念: APl(Application ProgrammingInterface): 应用程序编程接口 简单理解: API就是别人已经写好的东西&#xff0c;我们不需要自己编写&#xff0c;直接使用即可。 Java API: 指的就是J…