unity 鼠标移入弹出UI的操作
外部调用 show 和Hide方法
using DG.Tweening; using UnityEngine; using UnityEngine.UI; public class ShowInfo : MonoBehaviour { private bool _isshowing = false; public Canvas Canvas; // Use this for initialization void Start() { Hide(); } // Update is called once per frame void Update() { } public void Hide() { transform.DOScale(Vector3.zero, 0.3f); _isshowing = false; } public void Show() { transform.DOScale(Vector3.one, 0.3f); _isshowing = true; } void FixedUpdate() { if (_isshowing) { Vector2 localPoint = Input.mousePosition - new Vector3(Screen.width * 0.5f, Screen.height * 0.5f); Vector3 pos = (localPoint / Canvas.transform.localScale.x); pos.x += 10f; transform.DOLocalMove(pos, 0.01f); } } }
补充:Unity鼠标移动到UI按钮显示按钮全称
在工作中遇到一个问题,就是需要将鼠标移动到按钮上方后在按钮旁边显示出按钮全称,往上查阅资料后发现大家对OnMouseOver这一接口的调用讨论较多,但是在使用中发现这一接口适用于拥有碰撞体的gameObject中和GUI组件,对于UI中的组件并没有用途,因此我首先尝试了使用GetLocalCorners函数获取按钮的四个顶点坐标再获取鼠标的坐标进行计算判断鼠标是否在按钮区域内。
这种方法可以实现想要的效果。
但是当师傅看了我的代码后告诉我根本就不用这么麻烦,可以用Event Systems中的接口直接进行实现,具体如下:
在头文件中添加命名空间using EventSystems;
将自己定义的类继承自这个命名空间中需要的接口,再在类中为继承的接口添加实现:
添加实现:
这样就能实现控制自己需要的文字显示在一张UI上的图片上了。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
Unity3D 计时器的实现代码(三种写法总结)
1.每帧检查 定义一个时间变量 timer,每帧将此时间减去帧间隔时间 Time.deltaTime,如果小于或者等于零,说明定时器到了,执行相应功能代码,将此定时器重置,代码如下: public float timer = 1.0f; // Update is called once per frame void Update() { timer -= Time.deltaTime; if (timer <= 0) { Debug.Log(string.Format("Timer1 is
-
Unity 从Resources中动态加载Sprite图片的操作
我就废话不多说了,大家还是直接看代码吧~ public Sprite LoadSourceSprite(string relativePath) { //Debug.Log("relativePath=" + relativePath); //把资源加载到内存中 Object Preb = Resources.Load(relativePath, typeof(Sprite)); Sprite tmpsprite = null; try { tmpsprite = Instantiat
-
Unity实现换装系统
Unity如何实现换装系统,供大家参考,具体内容如下 1.创建Sprite Library Asset 2.添加新目录 Label 可以理解为标签,在代码调用过程中使用,将该部位装备图片拖入Sprite中 3.添加组件 给需要换装的部位添加Sprite Resolver组件(如头部换装,就在头部对象挂载组件) 选择目录名,就会出现之前Library Asset中拖拽的图片内容,点击不同图片可以预览效果(如果出现装备位置偏移,需调整图片的pivot) 4.通过代码实现换装 小笔记: 1).Unit
-
unity 鼠标悬停事件操作
笔者在网上发现了,很多种方法 ,当然咱们找最好用的,也简单的 下面废话不多说直接上代码 我在啰嗦几句 第一这个脚本挂在需要相应的游戏体上 第二被挂游戏体必须带有collider, 第三仅仅制作完上面的两步 本应该没有问题, 笔者又发现一个问题 就是只有鼠标在物体的右上方才会很灵敏的相应到 在在左下方反而没什么反应 ,为此笔者在脚本上加上了一句 this.GetComponent<BoxCollider> ().size = new Vector3 (1.5f, 1.5f, 1.5f); 原来物
-
unity实现鼠标经过时ui及物体的变色操作
1.实现UI的变色 设置Highlighted Color为鼠标经过时变的颜色(Normal为常态,Pressed为按下时的颜色,Disabled为禁止的颜色) 2.通过代码实现物体的颜色改变 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Cube_change : MonoBehaviour { private Color CubeColor; privat
-
Unity实现简单换装系统
关于Unity的换装,网上有几篇文章,我之前也简单的描述过实现.不过那个时候只是粗略的试验了下.今天好好梳理了下代码. 先上代码(自己的游戏项目,不是公司的,所以放心的贴上项目代码了,部分引用到其他的功能文件,但是核心代码无影响,这里主要看一下细节和思路) using UnityEngine; using System.Collections; using System.Collections.Generic; public enum AvatarPart { helmet, chest, sh
-
Unity 实现鼠标滑过UI时触发动画的操作
在有些需求中会遇到,当鼠标滑过某个UI物体上方时,为了提醒用户该物体是可以交互时,我们需要添加一个动效和提示音.这样可以提高产品的体验感. 解决方案 1.给需要有动画的物体制作相应的Animation动画.(相同动效可以使用同一动画复用) 2.给需要有动画的物体添加脚本.脚本如下: using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngi
-
unity 鼠标移入弹出UI的操作
外部调用 show 和Hide方法 using DG.Tweening; using UnityEngine; using UnityEngine.UI; public class ShowInfo : MonoBehaviour { private bool _isshowing = false; public Canvas Canvas; // Use this for initialization void Start() { Hide(); } // Update is called o
-
vue实现组件跟随鼠标位置弹出效果(示例代码)
实现鼠标放置在“我的”上时出现卡片,卡片位置跟随鼠标.当鼠标移除卡片时卡片隐藏.当鼠标移入时获取鼠标坐标,并把父组件的鼠标位置通过prop传给子组件. toCenter(event){ const{x,y}=event this.mouse_x=x; this.mouse_y=y; this.showCenter=true; }, 子组件通过动态绑定style改变div坐标. 注意!!! 一开始没用watch,而是在data里直接修改,如上所示.这样会出现刷新以后data获取不到prop中的属性
-
Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击
实例如下所示: 复制代码 代码如下: <html xmlns="http://www.w3.org/1999/xhtml"><head> <title>Jquery利用mouseenter和mouseleave实现鼠标经过弹出层且可以点击</title> <script src="JS/jquery-1.9.1.js" type="text/javascript"></
-
jQuery实现鼠标经过弹出提示信息的地图热点效果
本文实例讲述了jQuery实现鼠标经过弹出提示信息的地图热点效果.分享给大家供大家参考.具体如下: 这里的jQuery鼠标经过弹出提示信息地图热点效果,很多网站上有用到,送给大家,对作者表示感谢. 运行效果截图如下: 具体代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html&
-
JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)
本文实例讲述了JS+CSS实现鼠标经过弹出一个DIV框效果.分享给大家供大家参考,具体如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">
-
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例 document.oncontextmenu = function(){return false}; //禁止鼠标右键菜单显示 var res = document.getElementById('box'); //找到id为box的div document.body.onmouseup = function(e){ //在body里点击触发事件 if(e.button===2){ //如果button=1(鼠标左键),butto
-
Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例
如下所示: 复制代码 代码如下: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head> <title>Jquery中国地图热点效果-鼠标经过弹出提示层信息的简单实例</title> <meta http-equiv=
-
Angular 2使用路由自定义弹出组件toast操作示例
本文实例讲述了Angular 2使用路由自定义弹出组件toast操作.分享给大家供大家参考,具体如下: 原理: 使用Angular2的命名路由插座,一个用来显示app正常的使用,一个用来显示弹出框, <router-outlet name='apps'></router-outlet> <router-outlet name='popup'></router-outlet> 浏览器的导航栏中则这样显示 http://127.0.0.1:4200/(popup
-
在vant中使用时间选择器和popup弹出层的操作
我就废话不多说了,大家还是直接看代码吧~ <template> <div class="page"> <van-cell-group> <van-cell title="选择日期" :value="datetime" arrow @click="showDatePicker = !showDatePicker" ></van-cell> </van-cell-g
-
jquery实现鼠标悬浮弹出气泡提示框
jquery鼠标悬浮弹出气泡提示框,供大家参考,具体内容如下 居中的图片 代码 我在网上找了很多例子都是单独的一个,所以我修改了jquery的一点代码,让它可以在一个页面上多次使用,原文的地址我没找到,相信我这个会更好一点. //别忘了导入js文件! <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>气泡显示</title> <script
随机推荐
- jquery 键盘事件的使用方法详解
- FLEX 日期时间操作
- 解决Spring Mvc中对象绑定参数重名的问题
- Python中关键字nonlocal和global的声明与解析
- html5+javascript实现简单上传的注意细节
- js中判断文本框是否为空的两种方法
- phpmyadmin 访问被拒绝的真实原因
- Struts2在打包json格式的懒加载异常问题
- asp复制文件夹代码
- Android使用AsyncTask实现多线程下载的方法
- 基于laravel制作APP接口(API)
- 详解webpack的配置文件entry与output
- js实现获取两个日期之间所有日期的方法
- jquery操作对象数组元素方法详解
- Win8.1系统下搭建IIS8.5+PHP5.5.4运行环境教程
- Java的wait(), notify()和notifyAll()使用心得
- java实现数字转大写的方法
- 学习php笔记 字符串处理
- C++实现连连看游戏核心代码
- 实例操作易语言载入窗口