Unity 按钮反馈 果冻弹跳
在按钮上挂载该脚本,并添加Box Collider 2D,设置为触发器
说明
要想达到果冻般的弹跳效果,大小需要来回变化四次,且变化幅度逐渐减小
实现方法
第一次,从100%缩小至60%
随后,从60%放大至120%
时间点:1/4秒
第二次,从120%缩小至80%
随后,从80%放大至100%
时间点:1/3秒
第三次,从100%缩小至90%
随后从90%放大至100%
时间点:1/2秒
第四次,从100%缩小至95%
随后从95放大至100%
时间点:2/3秒
代码
对上述的参数进行了优化
using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class DancewhenClicked : MonoBehaviour
{//定义单例,使外部可访问public static DancewhenClicked instance { get; set; }//初始大小public Vector3 originscale;//变化率public float[] rate = {0.6f,1.1f,0.7f,1.05f,0.85f,1.0f,0.95f,1.0f};//0-7//变化后大小public Vector3 finalscale;//计时器public float timer = 0;//变化时长public float[] duration = {0.125f,0.125f,0.04f,0.04f,0.085f,0.085f,0.08f,0.08f};//时间点:0.125f,0.25f,0.29f,0.33f,0.415f,0.50f,0.58f,0.66f//工作状态public bool workingstatus=false;//当前缩放动作public int i=0;// Start is called before the first frame updatevoid Start(){originscale = gameObject.transform.localScale;finalscale = originscale * rate[i];}// Update is called once per framevoid Update(){if (Input.GetMouseButtonDown(0)){//从摄像机发射一条射线Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);//2D射线碰撞检测var hit = Physics2D.Raycast(ray.origin, Vector2.zero);print(hit.collider.name);if (hit.collider.name==gameObject.name){//跳动workingstatus = true;}}if(workingstatus){//计时timer += Time.deltaTime;if (i >= 8){//初始化finalscale = originscale;i = 0;timer = 0;workingstatus = false;return;}//在工作时间段内,缩放if (timer < duration[i]){gameObject.transform.localScale = Vector3.Lerp(gameObject.transform.localScale, finalscale, timer / duration[i]);}//超出该段工作时间,则重新开始一个新的循环if (timer > duration[i]){//精确调整大小gameObject.transform.localScale = finalscale;//初始化timer = 0;i++;//获取下次变化的目标大小if(i<8){finalscale = originscale * rate[i];}}}}
}
Unity 按钮反馈 果冻弹跳相关推荐
- 为什么Unity按钮点击失灵了
为什么Unity按钮点击失灵 可能是你Hierarchy面板下有透明的Image或者其他透明按钮把这个按钮挡住了. 解决方案:把Hierarchy面板中在这个按钮之后挡住的image拖放到这个按钮之前 ...
- unity按钮的使用
首先是按钮的代码, using System.Collections; using System.Collections.Generic; using UnityEngine; using Unity ...
- Unity -- 按钮的使用
在画布中创建一个按钮后会出现两个游戏物体,一个是按钮,另一个则是按钮的子物体文本 如果是旧版按钮的话跟着的就是旧版文本,如果是新版按钮的话跟着的就是新版文本 一个按钮物体包含五个部分:分别是控制其在画 ...
- unity按钮控制动画
准备工作:Asset Store 下载一套免费的animation导入unity 步骤一:创建空物体Creat Empty 在空物体GameObject里面 添加两个按钮 以及 把Prefabs的 ...
- Unity按钮禁用和变灰
this.GetComponent<Button>().enabled = false;//禁用按钮 如果需要将按钮变灰,则需要另外处理最近才发现一个禁用和变灰的按钮,这几年的代码我踏马真 ...
- 【Unity】模拟果冻效果(有碰撞)——JellySprites插件使用教程
插件链接:链接:https://pan.baidu.com/s/1ZvOnAvFSowBib3ZJ-ombdw 提取码:sen5 导入插件后直接进Jelly Sprite Demo Scene场景 ...
- Unity 按钮绑定一个脚本函数
如果有一个Scene(相当于Android开发的一个activity),里面添加一个Button,那这个Button想要代码执行点击事件,该怎么做呢? 一个比较完美的做法如下. 1. 创建按钮 Hie ...
- Unity 按钮音效管理【悬浮和按下】
删除按钮上的Buton组件,在按钮上挂载以下两个脚本 using UnityEngine.EventSystems; using UnityEngine.UI;namespace MT_Button ...
- Unity 按钮点击缩放
将下面的代码拖到Button上即可 using System.Collections; using System.Collections.Generic; using UnityEngine; usi ...
- Unity中按钮控制模型爆炸拆分的制作
很基础的教程,适用于unity小白.实现效果如下: 操作步骤如下: 1.在场景中创建动画模型,放到一个空物体下面,如图所示. 2.在window-Animation下,打开Animation窗口,点击 ...
最新文章
- Android APK的签名--笔记版 V1 签名和V2签名总结
- 用EC5/EC6自定义class的区别及用法 -- Phaser3网页游戏框架
- linux命令录制,怎样在Linux上录制你的终端操作及回放
- Linux下的命令总结笔记(一)
- 硬盘引导安装windows7系统的方法
- java的发展_java的发展
- Mysql临时表的用法 - 51CTO.COM
- 预训练模型对实体的表示能力差?一个简单有效的解法来了!(开源)
- springboot配置多项目下统一切换不同环境变量profile办法
- JavaScript-Tool:jquery.qrcode.js
- Android 应用开发(33)---Android程序签名打包
- 中国最富包租婆!每年坐地收租200亿,身家相当于十个老干妈
- 12年后,索尼重启机器人业务
- linux代码诊断有没有link,Linux下判断网线是否插入的代码
- mysql connectors层_mysql底层工作原理
- PID算法基本原理及整定实现方法
- js将两张图片合成一张图片
- Python—Scrapy爬取京东商城
- jQuery 选择器
- 古筝d调变降e调怎么办_古筝转调方法_古筝怎么转调