Unity学习:对UI移入移出时改变鼠标样式及大小

项目做得差不多,闲来无事,分享一下自己在项目中用到的小技巧。

需求:鼠标在Button上移入移出时,改变光标的样式及大小。

第一步:将图片导入Unity工程中,并改变图片类型和大小

将图片类型改为Cursor(光标)类型,然后将图片的MaxSize改为32,unity中Cursor最小是32 * 32(据我发现是这样的),

然后点击Apply。最好是把图片导入到Rescources文件夹下,因为等会要用到动态加载光标图片。

第二步:新建脚本MouseEnterOrExit,控制光标移入移出时改变其样式及大小。

第三步:开始编辑脚本

编辑完成后,将脚本挂到Button按钮上,就OK了。

测试结果:

菜鸟分享,不喜勿喷。

原创文章,转载、分享请注明原文地址:https://blog.youkuaiyun.com/ThreePointsHeat/article/details/81483774

Unity UGUI中实现鼠标移入移出弹窗跟随鼠标位置显示和隐藏,可结合引用中的方法,通过脚本实现。以下是一个示例脚本: ```csharp using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; public class PopupFollowMouse : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler { public Canvas canvas; // 画布 public GameObject popup; // 弹窗对象 private RectTransform rectTransform; // 坐标 void Start() { canvas = GameObject.Find("Canvas").GetComponent<Canvas>(); rectTransform = canvas.transform as RectTransform; popup.SetActive(false); // 初始隐藏弹窗 } public void OnPointerEnter(PointerEventData eventData) { popup.SetActive(true); // 鼠标移入显示弹窗 } public void OnPointerExit(PointerEventData eventData) { popup.SetActive(false); // 鼠标移出隐藏弹窗 } void Update() { if (popup.activeSelf) // 如果弹窗处于显示状态 { Vector2 pos; if (RectTransformUtility.ScreenPointToLocalPointInRectangle(rectTransform, Input.mousePosition, canvas.worldCamera, out pos)) { popup.GetComponent<RectTransform>().anchoredPosition = pos; // 让弹窗跟随鼠标位置 } } } } ``` ### 脚本使用步骤 1. 创建一个新的C#脚本,将上述代码复制进去,保存为`PopupFollowMouse.cs`。 2. 将该脚本挂载到需要检测鼠标移入移出UI元素上。 3. 在Unity编辑器中,将对应的`Canvas`对象赋值给脚本中的`canvas`变量,将弹窗对象赋值给`popup`变量。 ### 代码解释 - `Start`方法:在脚本启动获取画布的引用,并将弹窗初始状态设置为隐藏。 - `OnPointerEnter`方法:实现`IPointerEnterHandler`接口,当鼠标移入,将弹窗设置为显示状态。 - `OnPointerExit`方法:实现`IPointerExitHandler`接口,当鼠标移出,将弹窗设置为隐藏状态。 - `Update`方法:在每一帧检查弹窗是否显示,如果显示,则使用`RectTransformUtility.ScreenPointToLocalPointInRectangle`方法将鼠标的屏幕位置转换为UI元素本地空间中的位置,并将弹窗的位置设置为该位置,实现跟随效果。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值