using System; using UnityEngine; using YIUIFramework; namespace ET.Client { public static class YIUI3DDisplayClickHelper { /// /// 点击事件 /// /// /// /// 一个组件下多个3DDisplay时 用于区分 /// 被点击的对象 /// 他的最终父级是谁(显示对象) public static void OnClick(Type systemType, Entity self, UI3DDisplay display, GameObject target, GameObject root) { var iEventSystems = EntitySystemSingleton.Instance.TypeSystems.GetSystems(self.GetType(), systemType); if (iEventSystems is not { Count: > 0 }) { Log.Error($"类:{self.GetType().Name} 没有具体实现的事件 YIUI3DDisplayClick 请检查"); return; } foreach (IYIUI3DDisplayClick eventSystem in iEventSystems) { try { eventSystem.OnClick(self, display, target, root); return; } catch (Exception e) { Log.Error($"类:{self.GetType().Name} 事件回调错误 YIUI3DDisplayClick 请检查 {e}"); } } } } }