[麦克死特] ugui 一点点看法

本文介绍了Unity中UGUI事件处理的基础知识,包括如何通过实现特定接口来响应用户交互事件,如点击、滚动等,并提供了代码示例说明如何通过继承和重写来定制事件处理逻辑。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近打算用ugui来做项目 ui,学了几天,有点小心得,过来给大家说说。也希望 打算 以后放弃 ngui 换 ugui的朋友 给予一点 快速上手方法。

首先,学习 ugui 先 学习 事件。这里有一个 类 必须注意:
using  unityEngine.EventSystems;
在你 创建一个 脚本时候,必须要导入它!
有了它 ,你的 ui' 才有事件,才有 相互交流的 活力。
那么 我们下一步就是 导入接口 和实现接口。

比如我创建的 类叫  TestClickHandler
[AppleScript]  纯文本查看  复制代码
?
1
2
3
public class TestClickHandler : MonoBehaviour , IPointerClickHandler , IPointerDownHandler , IPointerEnterHandler , IPointerExitHandler ,
IInitializePotentialDragHandler , IBeginDragHandler , IEndDragHandler , IDragHandler , IDropHandler , IScrollHandler , ISelectHandler ,
IDeselectHandler , IUpdateSelectedHandler , IMoveHandler , ISubmitHandler , ICancelHandler


你可以 复制上面的 接口,也可以自己 拿着api一个个写。
下一步就是 对着 每一个 接口 去引入 方法。看下图
 

把这些 都实现了 之后,我们就可以简单的封装一下, 蛮牛网 有一个 协同开发的 帖子也有介绍,但我觉得 这么干不是很 方便,所以哥这么干!

比如 刚刚如图 实现的 方法是
[AppleScript]  纯文本查看  复制代码
?
1
2
3
4
5
     / / 接受滚轮
     public void OnScroll ( PointerEventData eventData )
     {
/ /      print ( "  OnScroll" ) ;
     }



哥再改一下。。。
[AppleScript]  纯文本查看  复制代码
?
1
2
3
4
5
     / / 接受滚轮
     public virtual void OnScroll ( PointerEventData eventData )
     {
/ /      print ( "  OnScroll" ) ;
     }



很多朋友看到这里 ,估计都知道我要干什么了。对,我要 重写他。
我再 创建一个 脚本!并继承 上图这个类
比如
[AppleScript]  纯文本查看  复制代码
?
01
02
03
04
05
06
07
08
09
10
11
12
using UnityEngine;
using System.Collections;
using  UnityEngine.EventSystems;
public class buttonClick : TestClickHandler {
  
     / / 接受滚轮
     public override void OnScroll ( PointerEventData eventData )
     {
         / /      print ( "  OnScroll" ) ;
     }
 
}



好了,这样 我们 只要 继承 TestClickHandler  这个类,我们 想用哪个 就 重写哪个 就ok了。爽吧。。


顺带再说个 技术点,ugui
射线是  射不到 它的,那么 我 这里要 交代一个 事情,也就是 事件 响应优先级 很多比射线 快!!



那么 顺序是 
OnDeselect  取消选择
OnSelect 选择
OnPointerEnter 鼠标滑过
OnPointerDown 鼠标点 但不松

OnInitializePotentialDrag 点并要移
这些优先 顺序 下来 才是 轮到 射线

那么聪明的你一定会想到 单例 来 判断 优先级了,具体不多说,我建议用OnPointerDown 来 作为 事件判断优先 和射线比,因为 其他的 有些ui 不一定会 响应。
好了,说完 。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值