比如某个界面存在设置按钮和查看个人信息按钮等其他按钮,点击设置按钮时加载一个prefab显示一个小弹窗,点击弹窗之外的任意位置都可以关闭这个弹窗,并且如果点的是其他功能按钮,那些按钮也会正常响应。这些按钮是同级的兄弟节点。
直接添加监听的话,传递不到兄弟节点,请问大神们这种情况应该怎么处理
弹窗放在这些按钮的上层,给弹窗给个覆盖全屏的node,给这个node添加监听事件,点击关闭就可以了。这个不要呼叫大神了吧,很简单的东西
单纯点击关闭很容易,问题是如果点击位置下面还有按钮,也要一起响应
如果只是单纯的加一个node挂个监听,响应完监听方法,事件不会传递到兄弟节点,你点击位置如果有同级的按钮,则没有响应
stopPropagation,检测到点击到按钮就停止传递监听就行了
实现点击任意位置关闭的时候,就已经在父节点添加了一个全屏的透明button
比如界面有按钮A和按钮B,点击A会加载一个prefab,点击B会加载另一个prefab
我点击A,加载了A的prefab,我想实现的是:点击任意位置,remove掉这个prefab,但同时,如果我是点击的B按钮,B按钮的响应也要发生。AB按钮是同级的兄弟节点。
实际情况就是,当我在打开A时,点击B按钮,实际上就是点击到父节点的透明button,消息是不会传递到按钮B的,怎么把这个消息传递给B
多看看事件传递吧
creator的事件传递是冒泡向上传的吧,有没有办法传递给兄弟节点呢
换句话说,比如同级的AB两个按钮重合了,我怎么按一下同时触发两个按钮
blockInputEvents 了解下
我是想让他继续传递下去,相当于一次点击,同时触发两个按钮
你可以点击一个地方 触发两个逻辑
主要是有一个点击任意位置,关闭该prefab的前提……
所以我一开始添加了一个覆盖全屏的透明button,相当于点击这个大button关闭prefab
但是因为有这个button,所以原本跟A按钮同级的其他按钮,获取不到这次点击的消息了
多谢大佬,还真是头一次知道后面这个参数的用法!