Unity中如何停止传递点击事件到其他对象
//把点击事件透下去\npublic void PassEvent<T>(PointerEventData data, ExecuteEvents.EventFunction<T> function) where T : IEventSystemHandler\n{\n List<RaycastResult> results = new List<RaycastResult>();\n EventSystem.current.RaycastAll(data, results);\n GameObject current = data.pointerCurrentRaycast.gameObject;\n\n var totalFunction = 0;\n for (int i = 0; i < results.Count; i++)\n {\n if (current != results[i].gameObject)\n {\n ExecuteEvents.Execute(results[i].gameObject, data, function);\n break; // 停止循环\n }\n }\n}\n这个方法,如果我想让他在执行了第一个有效的按钮回调后停下,该怎么做内容:如果你想让方法在执行了第一个有效的按钮回调后停下,你可以在执行回调后添加一个break语句来跳出循环。修改代码如下:\n\ncsharp\npublic void PassEvent\<T\>(PointerEventData data, ExecuteEvents.EventFunction\<T\> function) where T : IEventSystemHandler\n{\n List\<RaycastResult\> results = new List\<RaycastResult\>();\n EventSystem.current.RaycastAll(data, results);\n GameObject current = data.pointerCurrentRaycast.gameObject;\n\n var totalFunction = 0;\n for (int i = 0; i \< results.Count; i++)\n {\n if (current != results[i].gameObject)\n {\n ExecuteEvents.Execute(results[i].gameObject, data, function);\n break; // 停止循环\n }\n }\n}\n\n\n在执行了第一个有效的按钮回调后,break语句将会跳出循环,停止执行后续的回调。
原文地址: https://www.cveoy.top/t/topic/qC16 著作权归作者所有。请勿转载和采集!