保举阅读
- CSDN主页
- GitHub开源地址
- Unity3D插件分享
- 简书地址
- 我的个人博客
大家好,我是佛系工程师☆舒适的小魔龙☆,不定时更新Unity开辟本领,觉得有效记得一键三连哦。
一、媒介
本篇文章实现一个鼠标悬浮在UI上表现文字的功能,实现的思路跟我这篇文章很相似,可以类比这学习:【假造仿真】Unity3D中实现鼠标悬浮模型上表现文字。
差别的地方在于鼠标悬浮模型用的是这两个监听函数:
OnMouseEnter()
OnMouseExit()
而鼠标悬浮UI用的是这两个监听函数:
OnPointerEnter()
OnPointerExit()
那么就先来看一下效果图吧:

二、实现
场景随便搭建的:

表现框:

新建脚本HoverUIShowName.cs,双击打开脚本编辑代码:
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.EventSystems;
- using UnityEngine.UI;
- public class HoverUIShowName : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
- {
- public GameObject infoImage;
- public string Name;
- //偏移值
- [SerializeField] float offsetX = 0;
- [SerializeField] float offsety = 0;
- /// <summary>
- /// 控制UI的位置
- /// </summary>
- void Update()
- {
- if (infoImage.activeSelf)
- {
- infoImage.transform.position = Input.mousePosition + new Vector3(offsetX, offsety, 0);
- }
- }
- public void OnPointerEnter(PointerEventData eventData)
- {
- if (infoImage != null)
- {
- infoImage.SetActive(true);
- infoImage.GetComponentInChildren<Text>().text = Name;
- }
- }
- public void OnPointerExit(PointerEventData eventData)
- {
- if (infoImage != null)
- {
- infoImage.SetActive(false);
- }
- }
- }
复制代码 将这个脚本附到要表现名字的UI上:

运行就可以看到效果:

三、跋文
本篇博客完成了假造仿真项目常用到的鼠标进入UI表现文字的功能。
代码比较简朴,可以拓展的地方许多,比如更雅观的UI。
比如可以用预制体生成实际的UI,这样就不消再将UI拖到每一个模型的脚本组件的卡槽中了。
另有就是分辨率的差别造成的偏移值的题目,也可以优化一下。
你的点赞就是对博主的支持,有题目记得留言:
博主主页有接洽方式。
博主另有跟多宝藏文章等候你的发掘哦:
专栏方向简介Unity3D开辟小游戏小游戏开辟教程分享一些使用Unity3D引擎开辟的小游戏,分享一些制作小游戏的教程。Unity3D从入门到进阶入门从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。Unity3D之UGUIUGUIUnity的UI体系UGUI全剖析,从UGUI的根本控件开始讲起,然后将UGUI的原理,UGUI的使用全面讲授。Unity3D之读取数据文件读取使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。Unity3D之数据集合数据集合数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。Unity3D之VR/AR(假造仿真)开辟假造仿真总结博主工作常见的假造仿真需求进行案例解说。Unity3D之插件插件重要分享在Unity开辟中用到的一些插件使用方法,插件先容等Unity3D之一样平常开辟一样平常纪录重要是博主一样平常开辟中用到的,用到的方法本领,开辟思路,代码分享等Unity3D之一样平常BUG一样平常纪录纪录在使用Unity3D编辑器开辟项目过程中,遇到的BUG和坑,让厥后人可以有些参考。
来源:https://blog.csdn.net/q764424567/article/details/128850510
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |