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

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

效果展示图

代码如下

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博客

### 回答1: Unity是一款流行的游戏开发引擎,而"ring UI"是指环形用户界面。Unity中的环形用户界面是一种特殊的UI设计,通常用于创建具有环形控制器或菜单的游戏界面。这种界面设计旨在提供更直观、交互性更好的用户体验。 环形用户界面主要采用圆形或半圆形的布局,使得用户可以更方便地在其中选择不同的选项或功能。通过触摸屏幕或使用鼠标进行操作,用户可以从环形菜单中滑动或点击选择他们感兴趣的功能。 对开发者而言,Unity提供了一系列用于实现环形用户界面的工具和资源,例如Shader、Animation、Canvas等。通过利用这些工具,开发者可以轻松创建出精美、具有交互性的环形用户界面。 环形用户界面在游戏中有着广泛的应用。例如,在驾驶游戏中,玩家可以使用环形用户界面来控制方向盘和其他功能按钮。在战斗游戏中,环形用户界面可以用来控制攻击和防御技能。此外,环形用户界面还可以用于创建3D建模软件、虚拟现实应用程序等。 总之,Unity中的环形用户界面为游戏开发者提供了一种创造独特、易于操作的游戏界面的方法。它提升了用户体验,并且可以适用于各种类型的游戏和应用程序。 ### 回答2: Unity Ring UI是Unity引擎中的一个用户界面(UI)系统。它是Unity官方提供的一种解决方案,用于创建和管理游戏中的各种用户界面元素。 Unity Ring UI提供了丰富的UI元素和功能,帮助开发人员快速而方便地创建互动的、美观的游戏UI。它的设计目标是简化游戏UI的制作流程,并提供可定制性、灵活性和性能优化等方面的支持。 Unity Ring UI支持多种UI元素,如按钮、标签、滑块、进度条、文本框等。它还提供了许多布局选项,可以轻松地调整和排列UI元素。开发人员可以使用Unity编辑器中的可视化工具,或通过代码编写来创建和配置UI元素。 Unity Ring UI还提供了一套强大的交互功能。通过添加事件监听器,开发人员可以为UI元素添加点击、拖拽等交互行为。此外,Unity Ring UI还支持动画效果,可以通过简单的配置实现UI元素的过渡和动画效果,增加游戏的交互性和视觉效果。 总结起来,Unity Ring UI是Unity引擎内置的一个功能强大的UI系统,为开发人员提供了创建和管理游戏UI的工具和资源。它的易用性和灵活性使得游戏开发变得更加高效,同时可以提供出色的用户体验。无论是2D还是3D游戏,Unity Ring UI都是一个优秀的选择,可以帮助开发人员实现具有创意和吸引力的游戏界面。 ### 回答3: Unity引擎是一款用于创建游戏和视觉效果的跨平台开发工具。而Unity Ring UI是Unity引擎中一种常用的用户界面(UI)设计工具。 Unity Ring UI提供了一个可扩展的UI框架,用于创建各种交互式和响应式的用户界面。它基于环形菜单的概念,可让开发者轻松地构建出富有创意和引人注目的界面设计。 Unity Ring UI具有许多特性和功能,让开发者能够定制和优化界面的外观与交互体验。它支持多种不同的输入方式,包括鼠标、触摸和VR控制器。开发者可以通过简单的拖拽和放置操作来创建和调整菜单项的顺序和定位。 通过Unity Ring UI,开发者可以轻松地创建环形菜单、圆形滑块、旋转按钮等。这些元素可以在3D场景中自由移动和旋转,为用户带来全新的交互方式。 此外,Unity Ring UI还提供了丰富的动画效果和过渡效果,使得界面的切换和交互更加流畅和吸引人。开发者可以使用内置的过渡效果,也可以自定义动画来实现各种特殊的视觉效果。 总之,Unity Ring UI是一种强大的UI设计工具,它为开发者提供了许多灵活和创新的方式来构建出独特和出色的用户界面。无论是为游戏还是其他应用程序开发,Unity Ring UI都能帮助开发者实现更好的用户交互体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值