public static T CreateUI <T>(Transform Obj, T Script, UIDescriptor Desc, params object[] Params) where T : BaseUI { Obj.name = $"{Desc.Uri.AssetName}<{Script.ID}>"; Obj.localRotation = Quaternion.identity; switch (Script.DepthMode) { case UIDepthMode.Bottom: Obj.SetParent(CanvasBottomTransform, false); break; case UIDepthMode.Normal: Obj.SetParent(CanvasNormalTransform, false); break; case UIDepthMode.Top: Obj.SetParent(CanvasTopTransform, false); break; default: break; } Script.Path = Desc.Uri; Script.Cached = Desc.Cached; Script.UITransform = Obj; Script.UIRectTransform = Obj.GetComponent <RectTransform>(); Script.UIRectTransform.SetSiblingIndex(Script.DepthIndex + UIDepthCount_[Script.DepthMode]); Script.UICanvas.sortingOrder = (int)Script.DepthMode + (Script.DepthIndex + UIDepthCount_[Script.DepthMode]) * OrderStep; UIDepthCount_[Script.DepthMode]++; UIList_.Add(Script); Script.Open(Params); EventManager.Send <OpenUIEvent>(); return(Script); }
public static T OpenUI<T>(UIDescriptor Desc, params object[] Params) where T : BaseUI, new() { return OpenUI(new T(), Desc, Params); }