鼠标悬停(点击)出现文本提示框

这篇具有很好参考价值的文章主要介绍了鼠标悬停(点击)出现文本提示框。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

下面的是鼠标点击出现文字,如果想要鼠标移动上去出现,移出消失的话,UI可以使用OnPointerEnter跟OnPointerExit方法,命名空间是UnityEngine.EventSystems,如果是3D物体的话可以用OnMouseEnter跟OnMouseExit方法,这个是需要物体要有BoxCollider并且脚本是要挂载在物体上的.

关于GUIStyle的样式的话,可以看这篇文章.文章来源地址https://www.toymoban.com/news/detail-540171.html

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

class ShowTextBase : MonoBehaviour
{
    public Camera curCamera;
    public Font font;
    public int fontSize = 10;
    [Multiline]//允许多行输入
    public string text = "显示的文本";
    [System.Serializable]
    public struct StructData
    {
        public string key;
        public string value;
    }

    public StructData[] datas;

    public Dictionary<string, string> texts;

    private bool showText = false;
    private GUIStyle style;

    public void Start()
    {
        texts = new Dictionary<string, string>();
        style = new GUIStyle("box");
        foreach (var v in datas)
        {
            texts.Add(v.key, v.value);
        }
    }
    //参数hit 为out类型,可得到碰撞检测的返回值;
    RaycastHit hit;
    //参数ray 为射线碰撞检测的光线(返回一个从相机到屏幕鼠标位置的光线)
    Ray ray;
    private void Update()
    {
        if (Input.GetMouseButtonDown(0))
        {
            //参数ray 为射线碰撞检测的光线(返回一个从相机到屏幕鼠标位置的光线)
            ray = curCamera.ScreenPointToRay(Input.mousePosition);

            if (Physics.Raycast(ray, out hit)) //如果碰撞检测到物体
            {
                Debug.Log(hit.collider.gameObject.name);//打印鼠标点击到的物体名称
                if (texts.ContainsKey(hit.collider.gameObject.name))
                {
                    text = texts[hit.collider.gameObject.name];
                    showText = true;
                }
            }
        }

        if (Input.GetMouseButtonUp(0))
        {
            showText = false;
        }
    }

    public void OnGUI()
    {
        style.font = font;
        style.fontSize = fontSize;
        var vt = style.CalcSize(new GUIContent(text));
        if (showText)
            GUI.Box(new Rect(Input.mousePosition.x, Screen.height - Input.mousePosition.y - vt.y, vt.x, vt.y), text, style);
    }
    // 如果是UI的话,可以用这个, 物体的话可以考虑用OnMouseEnter方法
    //public void OnPointerEnter(PointerEventData eventData)
    //{
    //    showText = true;
    //}
    //public void OnPointerExit(PointerEventData eventData)
    //{
    //    showText = false;
    //}
    
}

到了这里,关于鼠标悬停(点击)出现文本提示框的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • three.js实现鼠标点击控制物体移动(带动画效果,位置精确)

    通过查阅各种资料,最终确定解决方案,动画效果使用gsap组件库实现,也可不用,代码稍作修改即可。解决鼠标点击坐标偏移问题,复制可直接运行。 完整代码如下:

    2024年02月07日
    浏览(43)
  • 【虚幻引擎】UE4/UE5鼠标点击事件实现物体移动

     在UE4/UE5中,引擎有它自己的一套框架体系,虚幻就是基于这一个框架体系来实现的。其中就有PlayerController(玩家控制器),玩家控制器中就有对鼠标的一系列设置,包括显示鼠标,允许点击事件等。  1.创建PlayerController,命名为MyPlayerController 2.打开MyPlayerController,勾选参数

    2024年02月10日
    浏览(56)
  • 秒会Pygame:键盘移动和鼠标点击移动物体的方法(含完整的代码)

    目录 预备知识 键盘控制物体移动事件 鼠标点击控制物体移动事件 鼠标移动的同时画彩色小球 预备知识 pygame的基本函数介绍 1.初始化函数,pygame的必备  pygame.init()   2.设置屏幕的大小 pygame.display.set_mode(size) //(长,宽) 3. 程序的命名 pygame.display.set_caption(\\\"string\\\") 4.屏幕的颜

    2023年04月08日
    浏览(35)
  • 前端echarts地图3D效果+点击地域出现弹出框可以有确定取消操作

    效果图如下:    代码如下: 运行3D项目要安装一下echarts-gl依赖: 引入的jiangsu文件要单独下载json文件,附上两个网址: DataV.GeoAtlas地理小工具系列 POI数据|高德POI|高德兴趣点|高德POI数据|高德POI下载|高德POI数据库|高德POI分类|高德北京市POI|高德上海市POI|高德广州市POI|高德

    2024年02月11日
    浏览(30)
  • Unity点击物体后,移动到物体所在位置

    脚本挂在被点击的物体上 脚本挂在角色控制器上 改进:使用Raycast中的LayerMask 创建“cube”层 将想要被检测的物体放入该层 3.1、 3D物体事件监听 在相机上挂Physics Raycaster组件 检查是否有EventSystem 将脚本挂在被点击的物体上 添加组件Event Trigger组件 3.2、 世界UI世界监听

    2024年02月07日
    浏览(38)
  • unity点击3D物体

    目录 一.OnMouse 二.射线检测(首先物体要有Collider 然后挂载脚本) 三.游戏物体 EventTrigger 物体动态事件监听 3.1 静态添加事件触发  3.2 动态添加事件触发  四.通过事件,实现接口IPointerClickHandler 添加一个脚本组件到你的3D物体上,这个脚本将处理点击事件并返回物体信息。例

    2024年02月07日
    浏览(34)
  • unity 点击3D物体

    1. 在场景中添加事件系统 2. 为主相机添加射线检测 3. 为物体挂载以下脚本,物体必须带碰撞体

    2024年02月06日
    浏览(27)
  • unity点击场景内物体进行交互

    提示:本文展示点击事件,另有其他自行研究 前言 一、原理 二、使用步骤 1.使用前提 2.使用脚本 总结 很多情况下我们需要对场景内的物体进行交互,今天我们采用射线检测的方法进行点击。 例如:点击场景内的Cube 进行开始旋转 提示:以下是本篇文章正文内容,下面案例

    2024年02月11日
    浏览(54)
  • vue - 实现类似 ”视频和直播间“ 的文字弹幕飘过效果功能,支持Nuxt项目!组件源码及详细的使用示例(可自己定义弹幕样式、修改滚动速度、显示隐藏弹幕、鼠标移入悬停与点击悬停等)弹幕功能插件源码

    在 Nuxt.js 或 Vue.js 项目中,制作一个类似视频弹幕、直播间发言飘过弹幕效果组件,丝滑运行兼容性完美无bug。 具体功能请看下图介绍,还有很多没有列举,基本上如果你需要这种弹幕,肯定能满足你。

    2023年04月22日
    浏览(45)
  • uni-app点击按钮弹出提示框(以弹窗的形式显示),选择确定和取消

    学习目标如下所示: uni-app点击提交按钮后弹出提示框,(以弹窗的形式显示),提示用户是否确认提交(即确定和取消),点击确定后调用真正的提交方法,将数据传给后端,点击取消后,模态框自动消失,不请求后端接口。 内容如下所示: 显示用户需要确认的模态框 点击

    2024年02月15日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包