基于DOTween插件实现金币飞行到指定位置功能
文章目录
- 前言
- 一、DOTween是什么?
- 二、使用步骤
- 1.导入DOTween插件
- 在Unity官方插件商店找到`DOTween`插件
- 导入DOTween插件
- 启用DOTween插件
- 2.代码逻辑
- 金币飞行代码
- 控制飞行效果代码
- 3.物体配置
- 1.物体上装配CoinEffect脚本
- 2.在金币预制体上装配FlyControl脚本
- 三、效果展示
var code = “7307db93-b489-4d94-a4d1-ead66b1b3fa0”
前言
通过使用 DOTween 插件实现金币两段飞行效果,第一段在物体周围随机生成指定数量的金币,第二段将金币移动到指定位置。
一、DOTween是什么?
DoTween 是Unity的一款插件,主要用于控制物体的移动和变换。
二、使用步骤
1.导入DOTween插件
在Unity官方插件商店找到DOTween插件
https://assetstore.unity.com/packages/tools/animation/dotween-hotween-v2-27676

导入DOTween插件

启用DOTween插件

2.代码逻辑
金币飞行代码
public class FlyControl : MonoBehaviour {private Vector3 endPos;private Vector3 startPos;private Vector3 vec1;private Vector3 vec2;[NonSerialized]public bool fly = true;public GameObject coin;//第一段位移 控制随机出现在父物体周围public void FlyCoinOne() {startPos = transform.position;float randomX = Random.Range(-50, 50);float randomY = Random.Range(-50, 50);vec1 = startPos + new Vector3(randomX, randomY, 0);coin.transform.DOMove(vec1, 0.3f).SetTarget(this);}//第二段位移 移动到指定位置public void FlyCoinTwo(Transform targetPos) {endPos = targetPos.position;vec2 = endPos;coin.transform.DOMove(vec2, 0.6f).SetTarget(this);float timer1 = 0;DOTween.To(() => timer1, x => timer1 = x, 1, 0.3f).OnStepComplete(() => { this.gameObject.GetComponent<Image>().DOFade(0, 0.3f).SetTarget(this); });float timer = 0;DOTween.To(() => timer, x => timer = x, 1, 0.61f).OnStepComplete(() => {fly = false;//Destroy(this.gameObject);});}}
控制飞行效果代码
public class CoinEffect : MonoBehaviour{[LabelText("金币预制体")] public GameObject prefab;public Transform parent;[LabelText("金币数量")] public int num;[LabelText("最终目的地")] public Transform targetPos;[LabelText("金币飞行速度")] public float time = 1;private int childNum = 0;public bool isEnd = false;private List<FlyControl> ts = new List<FlyControl>();public void StartEffect(){for (int i = 0; i < num; i++){GameObject go = Instantiate(prefab, parent, false);go.transform.position = gameObject.transform.position;FlyControl cc = go.GetComponent<FlyControl>();if (cc != null){cc.gameObject.SetActive(true);ts.Add(cc);childNum++;}ts[i].FlyCoinOne();}}IEnumerator StartEffect1(){yield return new WaitForSeconds(0.6f);for (int i = 0; i <= ts.Count; i++){this.DOKill();yield return new WaitForSeconds(0.1f);var rm = Random.Range(0, ts.Count);yield return new WaitForSeconds(0.01f);ts[rm].FlyCoinTwo(targetPos);// ts.Remove(ts[rm]);Debug.Log(rm);i = 0;}MyLogger.PrintLog("飞行结束");}/// <summary>/// 金币飞行效果,在Update里面调用/// </summary>public void CoinEffectShow(){//第一次飞行StartEffect();//第二次飞行StartCoroutine(StartEffect1());}private void Update(){if (childNum == 0){return;}foreach (var control in ts){if (control.fly){return;}}isEnd = true;if (Input.GetKeyDown(KeyCode.R)){CoinEffectShow();}}}
3.物体配置
1.物体上装配CoinEffect脚本

2.在金币预制体上装配FlyControl脚本

三、效果展示

相关文章:
基于DOTween插件实现金币飞行到指定位置功能
文章目录 前言一、DOTween是什么?二、使用步骤1.导入DOTween插件在Unity官方插件商店找到DOTween插件导入DOTween插件启用DOTween插件 2.代码逻辑金币飞行代码控制飞行效果代码 3.物体配置1.物体上装配CoinEffect脚本2.在金币预制体上装配FlyControl脚本 三、效果展…...
python-opencv 培训课程作业
python-opencv 培训课程作业 作业一: 第一步:读取 res 下面的 flower.jpg,读取彩图,并用 opencv 展示 第二步:彩图 -> 灰度图 第三步:反转图像:最大图像灰度值减去原图像,即可得…...
【Go入门】并发
【Go入门】并发 有人把Go比作21世纪的C语言,第一是因为Go语言设计简单,第二,21世纪最重要的就是并行程序设计,而Go从语言层面就支持了并行。 goroutine goroutine是Go并行设计的核心。goroutine说到底其实就是协程,…...
Java虚拟机运行时数据区结构详解
Java虚拟机运行时数据区结构如图所示 程序计数器 程序计数器(Program Counter Register)是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。 多线程切换时,为了能恢复到正确的执行位置,每条线程…...
华为OD机试 - 转盘寿司(Java JS Python C)
目录 题目描述 输入描述 输出描述 用例 题目解析 JS算法源码 Java算法源码...
【ATTCK】MITRE Caldera-emu插件
CALDERA是一个由python语言编写的红蓝对抗工具(攻击模拟工具)。它是MITRE公司发起的一个研究项目,该工具的攻击流程是建立在ATT&CK攻击行为模型和知识库之上的,能够较真实地APT攻击行为模式。 通过CALDERA工具,安全…...
23111709[含文档+PPT+源码等]计算机毕业设计基于Spring Boot智能无人仓库管理-进销存储
文章目录 **软件开发环境及开发工具:****功能介绍:****论文截图:****数据库:****实现:****代码片段:** 编程技术交流、源码分享、模板分享、网课教程 🐧裙:776871563 软件开发环境及…...
SDUT OJ《算法分析与设计》贪心算法
A - 汽车加油问题 Description 一辆汽车加满油后可行驶n公里。旅途中有若干个加油站。设计一个有效算法,指出应在哪些加油站停靠加油,使沿途加油次数最少。并证明算法能产生一个最优解。 对于给定的n和k个加油站位置,计算最少加油次数。 I…...
金融业务系统: Service Mesh用于安全微服务集成
随着云计算的不断演进,微服务架构变得日益复杂。为了有效地管理这种复杂性,人们开始采用服务网格。在本文中,我们将解释什么是Service Mesh,为什么它对现代云架构至关重要,以及它是如何解决开发人员今天面临的一些最紧…...
Linux下快速确定目标服务器支持哪些协议和密码套件
实现原理是利用TLS协议的特点和握手过程来进行测试和解析响应来确定目标服务器支持哪些TLS协议和密码套件。 在TLS握手过程中,客户端和服务器会协商并使用相同的TLS协议版本和密码套件来进行通信。通过发送特定的握手请求并分析响应,可以确定目标服务器…...
LeetCode100122. Separate Black and White Balls
文章目录 一、题目二、题解 一、题目 There are n balls on a table, each ball has a color black or white. You are given a 0-indexed binary string s of length n, where 1 and 0 represent black and white balls, respectively. In each step, you can choose two a…...
系列二十六、idea安装javap -c
一、概述 javap -c是一个能够将.java文件反编译为.class文件的指令,例如我在idea中编写了一个Car.java文件,我想看看这个类被编译后长什么样的,就可以使用该指令进行查看。 二、配置 2.1、 Java Bytecode Decompiler File>Settings>Pl…...
nginx 如何根据IP做限流,以及 nginx 直接返回 json 格式数据
Nginx 限流配置 Nginx是如何限流的。随着业务的扩散,系统并发越来越高时,有三样利器用来保护系统,分别是缓存、降级和限流。 随着业务的扩散,系统并发越来越高时,有三样利器用来保护系统,分别是缓存、降…...
C语言链式栈
stack.h typedef struct Node_s {int data;struct Node_s *pNext; } Node_t, *pNode_t;typedef struct Stack_s {pNode_t pHead;//栈顶指针,指向了链表的第一个结点int size;//栈的元素个数 } Stack_t, *pStack_t;void init(pStack_t pStack); void push(pStack_t …...
【Go入门】 Go的http包详解
【Go入门】 Go的http包详解 前面小节介绍了Go怎么样实现了Web工作模式的一个流程,这一小节,我们将详细地解剖一下http包,看它到底是怎样实现整个过程的。 Go的http有两个核心功能:Conn、ServeMux Conn的goroutine 与我们一般编…...
解决k8s node节点报错: Failed to watch *v1.Secret: unknown
现象: 这个现象是发生在k8s集群证书过期,重新续签证书以后。 记得master节点的/etc/kubernetes/kubelet.conf文件已经复制到node节点了。 但是为什么还是报这个错,然后运行证书检查命令看一下: 看样子是差/etc/kubernetes/pki/…...
日志维护库:loguru
在复杂的项目中,了解程序的运行状态变得至关重要。在这个过程中,日志记录(logging)成为我们追踪、调试和了解代码执行的不可或缺的工具。在python语言中常用logging日志库,但是logging日志库使用相对繁琐,在…...
【Go入门】 Go如何使得Web工作
【Go入门】 Go如何使得Web工作 前面小节介绍了如何通过Go搭建一个Web服务,我们可以看到简单应用一个net/http包就方便的搭建起来了。那么Go在底层到底是怎么做的呢?万变不离其宗,Go的Web服务工作也离不开我们第一小节介绍的Web工作方式。 w…...
汽车虚拟仿真视频数据理解--CLIP模型原理
CLIP模型原理 CLIP的全称是Contrastive Language-Image Pre-Training,中文是对比语言-图像预训练,是一个预训练模型,简称为CLIP。该模型是 OpenAI 在 2021 年发布的,最初用于匹配图像和文本的预训练神经网络模型,这个任…...
【Web】Ctfshow SSTI刷题记录1
目录 ①web361 362-无过滤 ②web363-过滤单双引号 ③web364-过滤单双引号和args ④web365-过滤中括号[]、单双引号、args ⑤web366-过滤单双引号、args、中括号[]、下划线 ⑦web367-过滤单双引号、args、中括号[]、下划线、os ⑧web368-过滤单双引号、args、中括号[]、下…...
QKeyMapper终极指南:Windows上最强大的开源按键映射工具
QKeyMapper终极指南:Windows上最强大的开源按键映射工具 【免费下载链接】QKeyMapper [按键映射工具] QKeyMapper,Qt开发Win10&Win11可用,不修改注册表、不需重新启动系统,可立即生效和停止。支持游戏手柄映射到键鼠ÿ…...
GraphpostgresQL高级用法:JSON、JSONB和HStore复杂数据类型的查询技巧
GraphpostgresQL高级用法:JSON、JSONB和HStore复杂数据类型的查询技巧 【免费下载链接】GraphpostgresQL GraphQL for Postgres 项目地址: https://gitcode.com/gh_mirrors/gr/GraphpostgresQL GraphpostgresQL作为PostgreSQL的GraphQL扩展,为开发…...
HoRain云--Ollama 安装
🎬 HoRain 云小助手:个人主页 ⛺️生活的理想,就是为了理想的生活! ⛳️ 推荐 前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。 目录 ⛳️ 推荐 …...
三步制作多系统启动盘:Ventoy完全指南告别重复格式化
三步制作多系统启动盘:Ventoy完全指南告别重复格式化 【免费下载链接】Ventoy A new bootable USB solution. 项目地址: https://gitcode.com/GitHub_Trending/ve/Ventoy 你是否还在为每个系统镜像单独制作启动盘而烦恼?是否因为U盘容量充足却只能…...
别再傻傻分不清!Keil C51和MDK-ARM双版本保姆级安装与共存指南(附资源)
Keil C51与MDK-ARM双版本高效共存实战手册 引言:为什么开发者需要同时安装两个版本? 在嵌入式开发领域,51单片机和ARM架构设备依然占据着重要地位。许多工程师和学生在项目开发或学习过程中,常常需要同时接触这两种不同架构的芯片…...
5分钟实现Rhino到Blender转换:3dm文件导入完整教程
5分钟实现Rhino到Blender转换:3dm文件导入完整教程 【免费下载链接】import_3dm Blender importer script for Rhinoceros 3D files 项目地址: https://gitcode.com/gh_mirrors/im/import_3dm 你是否为Rhino模型无法在Blender中完美呈现而烦恼?im…...
Unity资源归档:构建可信交付的四大技术支柱
1. 为什么“资源归档”不是打包,而是Unity项目生命周期的隐形分水岭在Unity项目做到中后期,你大概率会遇到这样几个信号:Build时间从3分钟涨到12分钟;AssetBundle生成脚本每次都要手动删旧包、清缓存、重设Variant;美术…...
解决Keil MDK中RL-ARM许可证错误L9937E的方法
1. 问题现象与背景解析最近在维护一个基于Keil MDK的嵌入式老项目时,遇到了一个棘手的许可证错误。项目需要使用RL-ARM实时库(Real-Time Library),但编译时出现了以下错误提示:Error: L9937E: RL-ARM is not allowed w…...
ComfyUI-Custom-Scripts自动完成功能完整指南:提升AI绘画效率的终极解决方案
ComfyUI-Custom-Scripts自动完成功能完整指南:提升AI绘画效率的终极解决方案 【免费下载链接】ComfyUI-Custom-Scripts Enhancements & experiments for ComfyUI, mostly focusing on UI features 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-Custo…...
CompressO:重新定义本地视频压缩的三大创新维度
CompressO:重新定义本地视频压缩的三大创新维度 【免费下载链接】compressO Convert any video/image into a tiny size. 100% free & open-source. Available for Mac, Windows & Linux. 项目地址: https://gitcode.com/gh_mirrors/co/compressO 当…...
