24/1/25用户注册登陆界面完成
今天遇到的问题
事件中心再添加监听事件时要注意监听函数的位置,如果处于初始化生命周期函数内可以不移除监听事件,如果不处于初始化生命周期函数内时,可能会出现重复监听的情况,需要每次监听完成后手动移除
在提示框的按钮中加入了事件中心的触发事件,通过提示栏的确定按钮来执行各种提示后的操作
在实际运行时发现监听事件被执行了多次,是因为没有在初始化中添加监听,而是在程序运行中动态添加的监听事件,使得事件多次添加
注册脚本中对应部分
//注册时进行账号校验
if (idCheck())
{
//打开提示面板
UIManager.GetInstance().ShowPanel<TipPanel>("TipPanel", E_UI_Layer.System, (p) =>
{
//提示账号已存在
p.UpdateText("账号已存在");
//监听提示按钮点击后该做什么
EventCenter.GetInstance().AddEventListener("TipPanelSure", UpdateText);
});
}
每次账号校验后都会重复添加事件
解决方法
在执行的回调函数中移除监听
//监听事件 账号已存在时清空输入框
public void UpdateText()
{
GetControl<InputField>("IF_ID").text = "";
GetControl<InputField>("IF_PW").text = "";
EventCenter.GetInstance().RemoveEventListener("TipPanelSure", UpdateText);
}