效果如下图所示:

实现步骤:

         

  

 

上图的Preferred Width和Preferred Height同sprite的Width、Height一样


Items.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Items : MonoBehaviour
{
public List<GameObject> items = new List<GameObject>();

//缩放时间
public float time = 1.3f;

//原先大小
public Vector2 oldSize;

//放大缩小速度
public float speed;

private void Start()
{
for (int i = 0; i < items.Count; i++)
{
EventTriggerListener.GetComponent(items[i]).onEnter = OnMouseEnter;
EventTriggerListener.GetComponent(items[i]).onExit = OnMouseExit;
}
}

void OnMouseEnter(GameObject go)
{
EventTriggerListener.GetComponent(go).UpdateSize(oldSize * time, speed);
}

void OnMouseExit(GameObject go)
{
EventTriggerListener.GetComponent(go).UpdateSize(oldSize, speed);
}
}

EventTriggerListener.cs    这是给5个sprite的

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

[RequireComponent(typeof(LayoutElement))]
public class EventTriggerListener : EventTrigger
{
public delegate void VoidDelegate(GameObject obj);
//点击
public VoidDelegate onClick;
//鼠标按下
public VoidDelegate onDown;
//鼠标抬起
public VoidDelegate onUp;
//鼠标移入
public VoidDelegate onEnter;
//鼠标移出
public VoidDelegate onExit;
private Vector2 currentSize;
private Vector2 targetSize;
private float speed = 4.0f;
public static EventTriggerListener GetComponent(GameObject obj)
{
EventTriggerListener listener = obj.GetComponent<EventTriggerListener>();
if (listener == null)
{
listener = obj.AddComponent<EventTriggerListener>();
}

return listener;
}
public override void OnPointerClick(PointerEventData eventData)
{
if (onClick != null)
{
onClick(gameObject);
}
}
public override void OnPointerDown(PointerEventData eventData)
{
if (onDown != null) onDown(gameObject);
}
public override void OnPointerUp(PointerEventData eventData)
{
if (onUp != null) onUp(gameObject);
}
public override void OnPointerEnter(PointerEventData eventData)
{
if (onEnter != null) onEnter(gameObject);
}
public override void OnPointerExit(PointerEventData eventData)
{
if (onExit != null) onExit(gameObject);
}
private void Start()
{
targetSize = currentSize = new Vector2(this.GetComponent<LayoutElement>().preferredWidth, this.GetComponent<LayoutElement>().preferredHeight);
}
private void Update()
{
if (currentSize != targetSize)
{
currentSize = Vector2.Lerp(currentSize, targetSize, Time.deltaTime * speed);
if (Vector2.Distance(currentSize, targetSize) <= 0.01)
{
currentSize = targetSize;
}

this.GetComponent<LayoutElement>().preferredWidth = currentSize.x;
this.GetComponent<LayoutElement>().preferredHeight = currentSize.y;
}
}

public void UpdateSize(Vector2 size,float speed)
{
this.targetSize = size;
this.speed = speed;
}
}

Unity鼠标悬停实现图片的浮动效果相关推荐

  1. css简单实现鼠标悬浮时图片向上浮动的效果

    文章目录 前言 一.效果图 二.使用步骤 1.HTML代码 2.CSS代码 总结 前言 css简单实现鼠标悬浮时图片向上浮动的效果 一.效果图 二.使用步骤 1.HTML代码 代码如下(示例): &l ...

  2. rp原型中鼠标悬停显示图片_悬停状态原型4种方式

    rp原型中鼠标悬停显示图片 There are tons of options available for UX designers to prototype a user experience an ...

  3. 鼠标悬停显示图片html5,JavaScript 鼠标悬停图片,显示隐藏文本

    Unsplash 当我们在浏览网页的时候,描述性的文本通常不会跟在图片之后,而是当我们将鼠标移至图片上时,才会将文本显示出来,这样的好处是,以突显图片为主,并节省布局空间 HTML 结构如下 世界上最 ...

  4. 用vue实现,鼠标悬停放大图片,根据鼠标位置倾斜图片网页源码

    大家好,今天给大家介绍一款,用vue实现的,鼠标悬停放大图片,并根据鼠标位置倾斜图片前端网页源码(图1).送给大家哦,获取方式在本文末尾. 图1 鼠标悬停放大图片,鼠标移动图片就会进行相应角度的倾斜, ...

  5. css照片翻转动画 (当鼠标悬停在图片上方时 图片翻转)

    css照片翻转动画 第一次 写博客 也不知道怎么排版 有什么建议私信我 - 鼠标悬停时 图片旋转到垂直于视线的90度位置 文字介绍旋转在垂直于视线的位置 这是html代码 <!DOCTYPE h ...

  6. html怎么鼠标经过添加蒙版遮罩,js实现鼠标移动到图片产生遮罩效果

    本文实例为大家分享了js实现鼠标移动到图片产生遮罩效果的具体代码,供大家参考,具体内容如下 mask .pic{ width:300px; height:250px; background:url(i ...

  7. 基于jquery鼠标点击图片翻开切换效果

    基于jquery鼠标点击图片翻开切换效果是一款基于jQuery+CSS3实现的点击图片切换特效.效果图如下: 在线预览    源码下载 实现的代码. html代码: <div class=&qu ...

  8. Vue中鼠标悬停更换图片/文字内容,动态展示/修改某些属性

    Vue中鼠标悬停更换图片/文字内容,动态展示/修改某些属性 鼠标悬停时:@mouseenter 鼠标离开时:@mouseleave 利用以上来绑定相应方法,例如: <div @mouseleav ...

  9. php鼠标悬停显示图片,HTML CSS 实现鼠标悬停时图片拉近效果

    前言 为了让网页的使用体验更好,我们会让网页的某些元素对鼠标的动作做出响应.例如鼠标滑过.单击按钮的时候按钮变色.变形.之前在很多网页上看到了鼠标滑过一个图片链接时图片放大.拉近的效果,今天尝试实现一 ...

最新文章

  1. 《人类简史》八、融合统一(下)——宗教的法则、历史的混沌
  2. DELL备份恢复系统的小工具 Dell DataSafe Local Backup
  3. 打开闪光灯java代码_android 拍照带水印(可打开闪光灯功能)
  4. 21. Merge Two Sorted Lists
  5. Intellij IDEA 2019 自动生成 serialVersionUID
  6. LeetCode Algorithm 203. 移除链表元素
  7. wpf window 不执行show 就不能load执行_Numpy反序列化命令执行漏洞分析(CVE-2019-6446)附0day...
  8. mac pandas文件路径_Mac进阶必看:如何利用Automator快速获取文件路径
  9. java中如何声明外键约束,外键约束不正确 - java-mysql
  10. ACM之八数码问题----BFS搜索----数独游戏的模拟(下)
  11. 实现HTTP下载的几种方式
  12. 几款经典的免费小软件 -- 白领的左右手
  13. 微信公众号之免登陆快速入门
  14. 一个网站的建设步骤(写给新手)
  15. 我的日常工作剖析,美好的一天,从每一天开始。
  16. 我的IT成长路——为梦想扬帆起航
  17. 【XSY3952】简单的计数题(dp)
  18. 时空大数据可视化专栏
  19. dobot示教程序ros
  20. 毒舌陆琪那些能让人少奋斗十年的语录![转载]

热门文章

  1. 【动态ppt制作软件】Focusky教程 | 自定义帧的转场时间
  2. Android 接入网易易盾 SDK (文本检测)
  3. “在线”正当道,8款在线原型工具推荐
  4. 修改windows开机密码
  5. 京瓷6525_京瓷6525复印机报价 京瓷6525复印机产品配置介绍
  6. scroll-view 自制横向滚动条
  7. 西门子200SMART 5轴伺服控制程序
  8. 今天在进行《系统工程理论与实践》论文中遇到的坑
  9. C语言文件类型和打开,关闭文件
  10. TÜV莱茵提醒: 欧盟发布医疗器械在MDR宽限期的重大变更指南