在按钮上挂载该脚本,并添加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 按钮反馈 果冻弹跳相关推荐

  1. 为什么Unity按钮点击失灵了

    为什么Unity按钮点击失灵 可能是你Hierarchy面板下有透明的Image或者其他透明按钮把这个按钮挡住了. 解决方案:把Hierarchy面板中在这个按钮之后挡住的image拖放到这个按钮之前 ...

  2. unity按钮的使用

    首先是按钮的代码, using System.Collections; using System.Collections.Generic; using UnityEngine; using Unity ...

  3. Unity -- 按钮的使用

    在画布中创建一个按钮后会出现两个游戏物体,一个是按钮,另一个则是按钮的子物体文本 如果是旧版按钮的话跟着的就是旧版文本,如果是新版按钮的话跟着的就是新版文本 一个按钮物体包含五个部分:分别是控制其在画 ...

  4. unity按钮控制动画

    准备工作:Asset Store 下载一套免费的animation导入unity 步骤一:创建空物体Creat Empty 在空物体GameObject里面 添加两个按钮  以及  把Prefabs的 ...

  5. Unity按钮禁用和变灰

    this.GetComponent<Button>().enabled = false;//禁用按钮 如果需要将按钮变灰,则需要另外处理最近才发现一个禁用和变灰的按钮,这几年的代码我踏马真 ...

  6. 【Unity】模拟果冻效果(有碰撞)——JellySprites插件使用教程

    插件链接:链接:https://pan.baidu.com/s/1ZvOnAvFSowBib3ZJ-ombdw  提取码:sen5  导入插件后直接进Jelly Sprite Demo Scene场景 ...

  7. Unity 按钮绑定一个脚本函数

    如果有一个Scene(相当于Android开发的一个activity),里面添加一个Button,那这个Button想要代码执行点击事件,该怎么做呢? 一个比较完美的做法如下. 1. 创建按钮 Hie ...

  8. Unity 按钮音效管理【悬浮和按下】

    删除按钮上的Buton组件,在按钮上挂载以下两个脚本 using UnityEngine.EventSystems; using UnityEngine.UI;namespace MT_Button ...

  9. Unity 按钮点击缩放

    将下面的代码拖到Button上即可 using System.Collections; using System.Collections.Generic; using UnityEngine; usi ...

  10. Unity中按钮控制模型爆炸拆分的制作

    很基础的教程,适用于unity小白.实现效果如下: 操作步骤如下: 1.在场景中创建动画模型,放到一个空物体下面,如图所示. 2.在window-Animation下,打开Animation窗口,点击 ...

最新文章

  1. Android APK的签名--笔记版 V1 签名和V2签名总结
  2. 用EC5/EC6自定义class的区别及用法 -- Phaser3网页游戏框架
  3. linux命令录制,怎样在Linux上录制你的终端操作及回放
  4. Linux下的命令总结笔记(一)
  5. 硬盘引导安装windows7系统的方法
  6. java的发展_java的发展
  7. Mysql临时表的用法 - 51CTO.COM
  8. 预训练模型对实体的表示能力差?一个简单有效的解法来了!(开源)
  9. springboot配置多项目下统一切换不同环境变量profile办法
  10. JavaScript-Tool:jquery.qrcode.js
  11. Android 应用开发(33)---Android程序签名打包
  12. 中国最富包租婆!每年坐地收租200亿,身家相当于十个老干妈
  13. 12年后,索尼重启机器人业务
  14. linux代码诊断有没有link,Linux下判断网线是否插入的代码
  15. mysql connectors层_mysql底层工作原理
  16. PID算法基本原理及整定实现方法
  17. js将两张图片合成一张图片
  18. Python—Scrapy爬取京东商城
  19. jQuery 选择器
  20. 古筝d调变降e调怎么办_古筝转调方法_古筝怎么转调

热门文章

  1. 计算机从系统格式开始
  2. 系统架构设计方法论——TOGAF
  3. mongodb敏感数据加解密
  4. java设置图片_JAVA 设置背景图片
  5. linux 图片压缩命令,Linux:优化和压缩JPEG和PNG图片的命令行工具
  6. python股票交易接口源代码分享
  7. ubuntu16.04 安装为知笔记
  8. python批量处理照片为可打印的黑底白字图片
  9. Ubuntu 安装 7z 加解压软件及其命令行的使用
  10. 图片加载oom以及photoView缩放崩溃问题