[Unity学习教程] 【假造仿真】Unity3D中实现鼠标悬浮UI上表现文字

[复制链接]
查看1099 | 回复0 | 2023-8-23 12:11:21 | 显示全部楼层 |阅读模式 来自 中国北京
保举阅读
  

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件分享
  • 简书地址
  • 我的个人博客
  大家好,我是佛系工程师☆舒适的小魔龙☆,不定时更新Unity开辟本领,觉得有效记得一键三连哦。
一、媒介

本篇文章实现一个鼠标悬浮在UI上表现文字的功能,实现的思路跟我这篇文章很相似,可以类比这学习:【假造仿真】Unity3D中实现鼠标悬浮模型上表现文字。
差别的地方在于鼠标悬浮模型用的是这两个监听函数:
   OnMouseEnter()
OnMouseExit()
  而鼠标悬浮UI用的是这两个监听函数:
   OnPointerEnter()
OnPointerExit()
  那么就先来看一下效果图吧:

二、实现

场景随便搭建的:

表现框:

新建脚本HoverUIShowName.cs,双击打开脚本编辑代码:
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.EventSystems;
  5. using UnityEngine.UI;
  6. public class HoverUIShowName : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
  7. {
  8.     public GameObject infoImage;
  9.     public string Name;
  10.     //偏移值
  11.     [SerializeField] float offsetX = 0;
  12.     [SerializeField] float offsety = 0;
  13.     /// <summary>
  14.     /// 控制UI的位置
  15.     /// </summary>
  16.     void Update()
  17.     {
  18.         if (infoImage.activeSelf)
  19.         {
  20.             infoImage.transform.position = Input.mousePosition + new Vector3(offsetX, offsety, 0);
  21.         }
  22.     }
  23.     public void OnPointerEnter(PointerEventData eventData)
  24.     {
  25.         if (infoImage != null)
  26.         {
  27.             infoImage.SetActive(true);
  28.             infoImage.GetComponentInChildren<Text>().text = Name;
  29.         }
  30.     }
  31.     public void OnPointerExit(PointerEventData eventData)
  32.     {
  33.         if (infoImage != null)
  34.         {
  35.             infoImage.SetActive(false);
  36.         }
  37.     }
  38. }
复制代码
将这个脚本附到要表现名字的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
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则