//打开窗口 public static async ETTask <T> OpenWindow <T, P1, P2, P3, P4>(this UIManagerComponent self, string path, P1 p1, P2 p2, P3 p3, P4 p4, UILayerNames layer_name = UILayerNames.NormalLayer, bool banKey = true) where T : Entity, IAwake, IOnCreate, IOnEnable <P1, P2, P3, P4>, new() { string ui_name = typeof(T).Name; var target = self.GetWindow(ui_name); if (target == null) { target = self.__InitWindow <T>(path, layer_name); self.windows[ui_name] = target; } target.Layer = layer_name; target.BanKey = banKey; return(await self.__InnerOpenWindow <T, P1, P2, P3, P4>(target, p1, p2, p3, p4)); }