首页 > 其他分享 >Unity使用DOTween实现金币飞入效果

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

时间:2024-10-09 21:11:34浏览次数:8  
标签:newCoinImage Vector3 飞入 金币 Unity DOTween rectTransform public coinImage

 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动画插件。

翻译

搜索

复制

标签:newCoinImage,Vector3,飞入,金币,Unity,DOTween,rectTransform,public,coinImage
From: https://www.cnblogs.com/qingyuan0213/p/18439631

相关文章

  • Unity ML-Agents: 革新游戏AI开发的开源工具包
    ml-agentsUnityML-Agents:革新游戏AI开发的开源工具包UnityML-Agents(MachineLearningAgents)是UnityTechnologies推出的一个开源项目,旨在将游戏和模拟环境转变为训练智能代理的平台。这个工具包为游戏开发者和AI研究人员提供了一个强大而灵活的框架,使他们能够轻松地在Un......
  • unity 摇杆
    /***********************************************EasyTouchControlsCopyright©2016TheHedgehogTeamhttp://www.thehedgehogteam.com/Forum/[email protected]************************************......
  • Unity 从零开始的框架搭建1-1 unity中对象调用的三种方式的优缺点分析【干货】
    该文章专栏是向QFrameWork作者凉鞋老师学习总结得来,吃水不忘打井人,不胜感激Unity框架搭建学习笔记1-1,前一个1代表凉鞋的第一季教程,后一个1代表该季第一篇我的文章 unity中对象调用的三种方式方法调用,例如:A调用B的SayHello方法委托或者回调,例如:界面监听子按钮的点击......
  • Unity移动旋转缩放
    //【移动】//一、修改Position//Translate//每帧移动一定距离,乘以deltaTime后变成每秒移动一定距离,默认是局部坐标会受自身旋转影响//transform.Translate(Vector3.up*Time.deltaTime);//transform.Translate(Vector3......
  • 【Unity】绘制表格:排行榜
    绘制一款表格,表格特征为头行颜色不同、间隔行不同背景色、滚动视图;表格内容是分数排行榜,前三名有奖牌图标前缀。成果展示Scene部分标题和背景滚动视图:表头、表格行模板效果图脚本部分脚本绑定在滚动组件的Viewport物体上。publicclassHighscoreTable:MonoBehaviour......
  • Unity 二维数组序列化
    unity中,二维以上的数量是不支持序列化的,如:usingSystem.Collections.Generic;usingUnityEngine;publicclassTestArray:MonoBehaviour{//不支持序列化(在Inspector面板无法显示)publicRect[][]rect2Ds;//不支持序列化(在Inspector面板无法显示)//pub......
  • 【春秋招必看】Unity相关笔试面试题(内有完整答案)第12期
    欢迎来到光光的奇妙冒险,我是你们的煎饼光子老师。今天是我们的第12期试题总结。C#部分:(前四题为字节跳动面试问题)1、List是链表还是数组答案:数组2、上一题追问:当list满了的时候,我再加入一个元素它的效率会比较低啊,它内部大概是一个什么样的执行过程呢?答案:数组搬家,会......
  • unity性能优化(有关图集)
    1.什么是图集?首先,你必须把你的美术资源TextureType改为Sprite(精灵类型),因为SpriteAltas只支持Sprite这种TextureType格式。官方:2D项目使用精灵和其他图形来创建其场景的视觉效果。这意味着单个项目可能包含许多纹理文件。Unity通常会为场景中的每个纹理发出一个绘制调用;但是,......
  • Unity实战案例全解析:RTS游戏的框选和阵型功能(5)阵型功能 优化一
    前篇:Unity实战案例全解析:RTS游戏的框选和阵型功能(4)阵型功能-CSDN博客本案例来源于unity唐老狮,有兴趣的小伙伴可以去泰克在线观看该课程我只是对重要功能进行分析和做出笔记分享,并未无师自通,吃水不忘打井人本案例的实现流程图 兵种排序  首先在一个阵型中,我们希望远......
  • unity编辑器绘制扇形
    使用UnityEditor.Handles.DrawSolidArc usingUnityEngine;usingUnityEditor;publicclassDrawSectorHandles:MonoBehaviour{publicfloatradius=5f;//扇形半径publicfloatangle=90f;//扇形角度publicColorarcColor=Color.red;/......