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