Unity使用DOTween实现金币飞入效果

news/2024/10/9 21:18:33
 1 public GameObject showRewardPanel;
 2 public Text SetCoinText;
 3 public Text SetLevelText;//经验exp
 4 private int getCoin;
 5 private int getExp;
 6 public Image coinImage;
 7 public Image targetImage;
 8 public Camera mainCamera;
 9 public TextMesh coinNumTextMesh;
10 public TextMesh coinNumShadeTextMesh;
11 
12 
13 
14 //根据获得的金币数,生成相应的预制体,展示动画效果
15 for (int i = 0; i < getCoin; i++)
16 {
17     Vector3 startPosition = coinImage.rectTransform.position + new Vector3(i * 50f, 0, 0);
18     Image newCoinImage = Instantiate(coinImage, coinImage.transform.parent);
19     newCoinImage.rectTransform.position = startPosition;
20     newCoinImage.rectTransform.localScale = coinImage.rectTransform.localScale;
21     Vector3 targetPosition = targetImage.transform.position;
22     Vector3 screenPosition = mainCamera.WorldToScreenPoint(targetPosition);
23     Vector3 scatterPosition = startPosition + new Vector3(0, UnityEngine.Random.Range(-200f, 200f), 0);
24 
25     newCoinImage.rectTransform.DOMove(scatterPosition, 0.6f)
26         .SetEase(Ease.OutQuad)
27         .OnComplete(() =>
28         {
29             newCoinImage.rectTransform.DOMove(screenPosition, 0.7f)
30                 .SetEase(Ease.InOutQuad)
31                 .OnComplete(() =>
32                 {
33                     coinNumTextMesh.text = UserSave.coins.ToString();
34                     coinNumShadeTextMesh.text = UserSave.coins.ToString();
35                 });
36         });
37 }

 这段代码种,coinImgae相当于金币的预制体(仅仅是相当于,因为它只是一个图片,2D游戏中也不只需要一个图片即可)。

代码的总体思路是,获取起始位置,即coinImage的位置,在这个位置生成更多的金币Imgae,再获取我们金币栏的位置,即终点位置,然后我们使用DOTween插件的DOMove函数进行移动,对于DOTween插件,这里不做详细的介绍,感兴趣的可以去了解一下,这是个很好用的2D动画插件。

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

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

相关文章

redis介绍与安装

Redis 简介Redis是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis与其他 key- value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,…

VSCode配置Python(记录)

python安装 官网在线安装或者下载离线包(勾选添加path环境变量)python指定版本运行 把对应版本的python.exe复制一下,粘贴改名加个对应版本,因为添加了环境变量的缘故所以可以直接在命令窗中运行运行测试对应项目创建虚拟环境(包管理) tips:当然了,也可以用anaconda管理…

The Missing Semester of Your CS Education

from pixiv前言 The missing semester of your CS education计算机设计的初衷就是任务自动化,然而学生们却常常陷在大量的重复任务中,或者无法完全发挥出诸如 版本控制、文本编辑器等工具的强大作用。效率低下和浪费时间还是其次,更糟糕的是,这还可能导致数据丢失或 无法完…

《机器学习初步》笔记

第一章 绪论 1.1 引言 机器学习的经典定义:利用经验(数据)改善系统自身的性能 经典的机器学习过程:机器学习最重要的理论模型:PAC(概览近似正确)1.2 基本术语 数据集:一组记录的集合 学习/训练:通过执行某个学习算法,得到模型,学的的模型对应数据的某种潜在规律 示例…

一文搞懂:预提、计提、摊销

本文将透彻解析这三个会计处理方式的异同,以及如何在实务操作中注意其细节,帮助会计人员更好地掌握和应用这些工具。通过实际案例的讲解,使读者能够清晰地区分和运用预提、计提及摊销,确保会计信息的准确性和时效性。 一、预提、计提、摊销 预提、计提、摊销,这三个名词长…

实验2 C语言分支与与循环基础应用编程——1

一、实验目的 1. 能正确使用if语句实现分支结构 2. 能正确使用while语句、do...while语句实现循环结构 3. 能在具体问题场景中正确区分、使用continue和break 4. 能灵活、组合使用c语句编程解决简单应用问题 二、实验准备 1. 分支语句 if 和循环语句 while 、 do...while 的用…

redis安装致命错误jemalloc/jemalloc.h

安装报错 在安装redis的时候,执行 make && make install 发生以下错误解决方案其实可以读一下redis里的Readme.md文件,我截图了其中的部分,使用make MALLOC=libc & make install

鼻托历险记

鼻托历险记我是一个鼻托,和我的双胞胎兄弟共同居住在一副眼镜上。 自打出生起,我就和其它部件们被融合成了一个集体。我们已经工作了快两年了,我的主人很贴心的照顾我们,不隔多久就会给和我们一起工作的镜片兄弟精心擦拭一番,也有时会心血来潮,给整个集体一起洗个凉水澡。…