public override void execute() { GameLayout layout = mLayoutManager.getGameLayout(mLayoutID); if (layout == null) { return; } // 自动计算渲染顺序的布局在显示时,需要重新计算当前渲染顺序 LAYOUT_ORDER orderType = layout.getRenderOrderType(); if (mVisibility && (orderType == LAYOUT_ORDER.ALWAYS_TOP_AUTO || orderType == LAYOUT_ORDER.AUTO)) { int renderOrder = mLayoutManager.generateRenderOrder(layout, layout.getRenderOrder(), orderType); if (renderOrder != layout.getRenderOrder()) { layout.setRenderOrder(renderOrder); } } if (!mForce) { layout.setVisible(mVisibility, mImmediately, mParam); } else { layout.setVisibleForce(mVisibility); } }
//-------------------------------------------------------------------------------------------------------------------------------------------- // 布局 #region 布局 public static void LOAD_LAYOUT(int id, int renderOrder, LAYOUT_ORDER orderType, bool visible, bool immediately, string param, bool isScene, bool isAsync, LayoutAsyncDone callback) { CMD(out CommandLayoutManagerLoad cmd, true, false); cmd.mLayoutID = id; cmd.mVisible = visible; cmd.mRenderOrder = renderOrder; cmd.mOrderType = orderType; cmd.mAsync = isAsync; cmd.mImmediatelyShow = immediately; cmd.mParam = param; cmd.mIsScene = isScene; cmd.mCallback = callback; pushCommand(cmd, mLayoutManager); }
public override void resetProperty() { base.resetProperty(); mCallback = null; mResultLayout = null; mLayoutID = LAYOUT.NONE; mOrderType = LAYOUT_ORDER.ALWAYS_TOP; mParam = null; mVisible = true; mAsync = false; mImmediatelyShow = false; mIsScene = false; mAlwaysTop = false; mRenderOrder = 0; }
// 根据顺序类型,计算实际的渲染顺序 public int generateRenderOrder(GameLayout exceptLayout, int renderOrder, LAYOUT_ORDER orderType) { if (orderType == LAYOUT_ORDER.ALWAYS_TOP) { if (renderOrder < FrameDefine.ALWAYS_TOP_ORDER) { renderOrder += FrameDefine.ALWAYS_TOP_ORDER; } } else if (orderType == LAYOUT_ORDER.ALWAYS_TOP_AUTO) { renderOrder = getTopLayoutOrder(exceptLayout, true) + 1; } else if (orderType == LAYOUT_ORDER.AUTO) { renderOrder = getTopLayoutOrder(exceptLayout, false) + 1; } return(renderOrder); }
public static void LOAD_UGUI_SHOW(int id, int renderOrder, LAYOUT_ORDER orderType, bool immediately) { LOAD_UGUI(id, renderOrder, orderType, true, immediately, null); }
public static void LOAD_UGUI_SHOW(int id, int renderOrder, LAYOUT_ORDER orderType) { LOAD_UGUI(id, renderOrder, orderType, true, false, null); }
public static void LOAD_UGUI_ASYNC(int id, int renderOrder, LAYOUT_ORDER orderType, LayoutAsyncDone callback) { LOAD_LAYOUT(id, renderOrder, orderType, true, false, null, false, true, callback); }
public static void LOAD_UGUI(int id, int renderOrder, LAYOUT_ORDER orderType, bool visible, bool immediately, string param) { LOAD_LAYOUT(id, renderOrder, orderType, visible, immediately, param, false, false, null); }
public static void LOAD_UGUI(int id, int renderOrder, LAYOUT_ORDER orderType, bool visible) { LOAD_LAYOUT(id, renderOrder, orderType, visible, false, null, false, false, null); }
public void setOrderType(LAYOUT_ORDER orderType) { mRenderOrderType = orderType; }