首页 > 其他分享 >【unity】内置鼠标监听方法(小白版)--当鼠标放置到技能按钮处显示该技能的描述

【unity】内置鼠标监听方法(小白版)--当鼠标放置到技能按钮处显示该技能的描述

时间:2024-10-11 15:18:40浏览次数:10  
标签:鼠标 -- void public PointerEventData 对象 eventData 白版 技能

为了实现鼠标放置到技能按钮处显示该技能描述的效果,参考了许多资料,由于我是初学者,研究了许久才看明白,现在分享一下学习心得。

效果展示图

代码如下

using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;

public class SkillDataDisplay : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler
{
    //1.1.显示技能描述的组件    
    public GameObject skilDisplayer;
    public Text skilDisplayerText;
    public string skillText;
    public void OnPointerEnter(PointerEventData eventData)//3.1.监听鼠标进入
    {
        skilDisplayer.SetActive(true);
        skilDisplayerText.text = skillText;
        float X = Input.mousePosition.x - Screen.width / 2f + 50f;
        if (X > 400) X = 400;
        float Y = Input.mousePosition.y - Screen.height / 2f - 50f;
        if (Y < -300) Y = -300;
        skilDisplayer.transform.localPosition = new Vector2(X, Y);
    }
    public void OnPointerExit(PointerEventData eventData)//3.2.监听鼠标离开
    {
        skilDisplayer.SetActive(false);
    }
    public void OnPointerDown(PointerEventData eventData)//3.3.监听鼠标点击
    {
        skilDisplayer.SetActive(false);
    }
}

1、首先把该脚本放到需要此效果的UI上

2、每有一种需要实现的效果就要在MonoBehaviour后面引入对应的接口,比如:IPointerEnterHandler, IPointerExitHandler, IPointerDownHandler

3、每个接口都必须实现(使用),比如:

方法-public void OnPointerExit(PointerEventData eventData)
{    skilDisplayer.SetActive(false); }-实现IPointerExitHandler接口

4、实现接口必须用public(不知道为什么,反正不用会报错)

5、其他接口与对应的实现方法如下

效果接口名方法名
指针(鼠标)进入对象物体范围时IPointerEnterHandlerpublic void OnPointerEnter(PointerEventData eventData){}
指针离开对象物体范围时IPointerExitHandlerpublic void OnPointerExit(PointerEventData eventData){}
指针在对象上按下时调用(仅在按下的那一帧)IPointerDownHandlerpublic void OnPointerDown(PointerEventData eventData){}
指针在对象上释放(松开鼠标)时调用(在最初按下的对象上调用)
指针在对象上按住不松手,此时指针离开对象物体范围时也会触发
IPointerUpHandlerpublic void OnPointerUp(PointerEventData eventData){}
指针在同一对象上按下并释放时调用(模拟点击)
指针按下后离开对象物体范围后释放,不触发
IPointerClickHandlerpublic void OnPointerClick(PointerEventData eventData){}
拖拽即将开始时在拖拽对象上调用IBeginDragHandlerpublic void OnBeginDrag(PointerEventData eventData){}
拖拽发生时在拖拽对象上调用IDragHandlerpublic void OnDrag(PointerEventData eventData){}
拖拽结束时在拖拽对象上调用IEndDragHandlerpublic void OnEndDrag(PointerEventData eventData){}
当拖拽结束时在放置目标对象上调用IDropHandlerpublic void OnDrop(PointerEventData eventData){}
鼠标滚轮滚动时调用IScrollHandlerpublic void OnScroll(PointerEventData eventData){}

参考原文:

unity的UI内置接口(IBeginDragHandler,IPointerEnterHandler.......)_unity ipointerenterhandler-CSDN博客

标签:鼠标,--,void,public,PointerEventData,对象,eventData,白版,技能
From: https://blog.csdn.net/m0_74463266/article/details/142848951

相关文章

  • 开源模型应用落地-从源代码构建和运行vLLM-以满足您更高的需求
    一、前言   通过vLLM源码构建Docker镜像有诸多显著的好处。首先,源码构建能够确保我们使用的是最新的功能,避免版本不一致带来的问题。其次,自定义构建过程使能够根据特定需求优化镜像,比如去除不必要的依赖或者添加自定义配置,从而提高镜像的性能和安全性。此外,Docker容器化的......
  • 如何用3个月零基础入门网络安全?_网络安全零基础怎么学习
    前言写这篇教程的初衷是很多朋友都想了解如何入门/转行网络安全,实现自己的“黑客梦”。文章的宗旨是:1.指出一些自学的误区2.提供客观可行的学习表3.推荐我认为适合小白学习的资源.大佬绕道哈!一、自学网络安全学习的误区和陷阱1.不要试图先成为一名程序员(以编程为基础......
  • springboot企业招聘管理系统
    基于springboot+vue实现的企业招聘管理系统 (源码+L文+ppt)4-089   4.3系统结构设计  构图是系统的体系结构,体系结构是体系结构体系的重要组成部分。系统的总体结构设计如图4-2所示。   图4-2系统总体架构图4.4数据库设计  4.4.1数据库设计原则  ......
  • springboot酒店在线预订系统
    基于springboot+vue实现的酒店在线预订系统 (源码+L文+ppt)4-082                                   4.2 系统结构设计  构图是系统的体系结构,体系结构是体系结构体系的一部分,体系结构体系是体系结......
  • 【API文档】apache.的BooleanUtils类
    org.apache.commons.lang3.BooleanUtils类方法分析方法签名功能或适用场景入参详细解释publicstaticbooleanand(finalboolean...array)对一组boolean值进行与操作array:一组boolean值publicstaticBooleanand(finalBoolean...array)对一组Boolean对象进......
  • AtCoder Beginner Contest 373 (A-F)
    AtCoderBeginnerContest373(A-F)比赛链接A-September#include<bits/stdc++.h>usingnamespacestd;usingi64=longlong;voidShowball(){intans=0;for(inti=1;i<=12;i++){strings;cin>>s;ans+=((int)s.si......
  • 红日靶机(四)笔记
    VulnStack红日靶机四概述这个靶场环境包含了三台机器,一台web,两台window域机器。web服务是使用docker容器搭建的,所以就涉及到docker逃逸。而在获得立足点的过程中,我们要对三个docker容器分别测试,不能漏掉可以逃逸docker容器的机器:分别有struts2的反序列化RCE、tomcat的任意文件......
  • Pixnet台湾最火社交网站
    Pixnet是一个台湾的网络社群服务平台。它由曾皇霖与刘昊恩在2003年创立,目前由城邦媒体控股集团的子公司优像数位媒体经营。该网站主要提供以下服务:1.**部落格(博客)**:用户可以在上面发表个人的文字内容、观点、经历分享等,类似于个人的网络日志空间,用户可以对文章进行编辑、排版等......
  • 【API文档】apache的BooleanUtils类
    org.apache.commons.lang3.StringUtils类提供的方法列表:方法签名功能描述参数解释booleancontains(CharSequenceseq,intsearchChar)检查字符序列中是否包含指定的字符。seq:要检查的字符序列。searchChar:要查找的字符。booleancontains(CharSequenceseq......
  • oracle 11g查看alert日志方法
    oracle11g查看alert日志方法一。第一种方法1.切换到oracle用户su-oracle2.进入sqlplus窗口sqlplus/assysdba3.执行sql命令,查看trace文件位置:background_dump_dest就是后台日志showparameterdump;4.退出sqlplus命令行,在linux命令行执行cd命令,切换到trace目录下c......