public T PushCtrl <T>(KSKitConfigure configure) where T : KSWindow { if (canvas_stack.Count >= KSLayer.maxui) { return(null); } //1、更新标识Key if (configure.is_custom_key == false) { configure.UpdateKey(typeof(T).Name); } //2、获取Canvas KSCanvas ui_canvas = canvas_manager.InstantiateUICanvas <T>(camera_manager.ui_camera, configure, canvas_stack.Count); //3、页面组件 T prefab_component = KSWindow.CreateWindow <T>(); //4、导航组件 KSNavigatorBar navigator_bar_component = null; switch (configure.bar_type) { case KSNavigatorBarType.nomarl: navigator_bar_component = navigator_bar_manager.InstantiateNavigatorBar(); navigator_bar_component.UpdateConfigure(configure); prefab_component.navigator_bar = navigator_bar_component; break; case KSNavigatorBarType.popup: break; } //5、设置父物体 prefab_component.transform.SetParent(ui_canvas.transform, false); if (navigator_bar_component != null) { navigator_bar_component.transform.SetParent(ui_canvas.transform, false); } //6、入栈 canvas_stack.Push(ui_canvas); //7、更新CameraCullingMask camera_manager.UpdateCameraCullingMask(canvas_stack); return(prefab_component); }