Unity UI层级管理框架

本文介绍了在Unity中由于UI界面复杂,面板和控件众多,导致事件管理繁琐的问题。作者提出了一种UI层级管理框架,通过使用OnTriggerEvent.cs脚本实现控件事件的集中管理,创建单例进行全局控制,简化了UI的初始化和事件监听过程,提高了代码的可维护性和扩展性。

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

1.为什么要使用UI层级管理框架?

根据我个人写的UI层级总结出:在一般UI界面的 Canvas 下有多个Panel,每个Panel下又有很多个需要操作的控件(Image、Text、inputField、Button)等,

因此要去管理如此多的事件处理非常繁琐,UI的层级结构刚好适合用一套框架来管理 :Canvas--->Panel--->(控件)

例:



第一步:给需要监听鼠标事件的控件添加监听脚本

用一个脚本代替 控件在Inspector中留下的OnClick方法(例:Button的OnClick需要去在脚本中寻找相对应的方法,如果脚本多了,寻找方法困难,而且不利于扩展)

因此我用了一个 OnTriggerEvent.cs 的脚本来执行相应的点击事件

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

public class OnTriggerEvent : EventTrigger {
    //通过委托事件让UIScene来分配事件
    public delegate void ClickListener();
    public event ClickListener onBeginDrag;
    public event ClickListener onDrag;
    public event ClickListener onEndDrag;
    public event ClickListener onPointerClick;
    public event ClickListener onPointerUp;
    ///UI的相关监听//鼠标进入

    public override void OnBeginDrag(PointerEventData eventdata)
    {
        if (onBeginDrag != null)
            onBeginDrag();
    }
    public override void OnDrag(Pointer
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值