public CloneLayoutCommand(PlayerStatusTypeViewModel newPlayerStatus, TLayout layout, ObservableCollection <TLayout> layoutCollection) { _newPlayerStatus = newPlayerStatus; _layout = layout; _layoutCollection = layoutCollection; _layout.PropertyChanged += _layout_PropertyChanged; }
private void InitAfterUICreate() { //计算布局 var gameui = UIManager.Ins.GetWindow <GameUI>("gameui"); layout = GameScn.CaculateLayout(gameui.TopHudPos, gameui.DownHudPos); //NTODO 载入关卡数据 LoadMgr.Ins.LoadMapdate(CurLevel, InitMap); }
/// <summary> /// Tries to get next layout. /// </summary> /// <returns>Null if not successful.</returns> public bool TryGetLayout(out TLayout layout) { var hasMore = enumerator.MoveNext(); layout = hasMore ? enumerator.Current : default(TLayout); if (!hasMore) { IsFinished = true; } return(hasMore); }
public static TLayout CaculateLayout(Vector3 topHudPos, Vector3 downHudPos) { TLayout layout = new TLayout(); //--------------------游戏可用区域 Vector3 sub = topHudPos - downHudPos; layout.UseableGameAreaH = sub.y; layout.UseableGameAreaW = CameraMgr.CameraW - BoundSpaceW * 2f; layout.UseableGameAreaLeft = 0 - CameraMgr.CameraW / 2 + BoundSpaceW; layout.UseableGameAreaRight = CameraMgr.CameraW / 2 - BoundSpaceW; layout.UseableGameAreaTop = topHudPos.y; layout.UseableGameAreaDown = downHudPos.y; layout.UseableGameAreaAspect = layout.UseableGameAreaH / layout.UseableGameAreaW; layout.UseableGameAreaCenterX = 0;//layout.UseableGameAreaLeft + layout.UseableGameAreaW / 2; layout.UseableGameAreaCenterY = layout.UseableGameAreaTop - layout.UseableGameAreaH / 2; //var go = GameObject.CreatePrimitive(PrimitiveType.Sphere); //go.transform.position = new Vector3(layout.UseableGameAreaLeft, 0,0); //go.transform.localScale = Vector3.one * 0.5f; //go.name = "left"; //go = GameObject.CreatePrimitive(PrimitiveType.Sphere); //go.transform.position = new Vector3(layout.UseableGameAreaRight, 0, 0); //go.transform.localScale = Vector3.one * 0.5f; //go.name = "right"; //go = GameObject.CreatePrimitive(PrimitiveType.Sphere); //go.transform.position = new Vector3(0, layout.UseableGameAreaTop, 0); //go.transform.localScale = Vector3.one * 0.5f; //go.name = "top"; //go = GameObject.CreatePrimitive(PrimitiveType.Sphere); //go.transform.position = new Vector3(0, layout.UseableGameAreaDown, 0); //go.transform.localScale = Vector3.one * 0.5f; //go.name = "down"; //go = GameObject.CreatePrimitive(PrimitiveType.Sphere); //go.transform.position = topHudPos; //go.transform.localScale = Vector3.one * 0.5f; //go.name = "tophud"; //go = GameObject.CreatePrimitive(PrimitiveType.Sphere); //go.transform.position = downHudPos; //go.transform.localScale = Vector3.one * 0.5f; //go.name = "downhud"; //--------------------自适应后tile大小 bool bAutoSizeW = layout.UseableGameAreaAspect > OrignalTileAspect ? true : false; if (bAutoSizeW) { //可用区域aspect大于游戏区域(单个块的aspect),以w为基准进行计算 var w = OrignalTileW * MAX_NUM; layout.Scale = layout.UseableGameAreaW / w; } else { //可用区域aspect小于游戏区域(单个块的aspect),以h为基准进行计算 var h = OrignalTileH * MAX_NUM; layout.Scale = layout.UseableGameAreaH / h; } //自适应后tile的H,W layout.TileH = OrignalTileH * layout.Scale; layout.TileW = OrignalTileW * layout.Scale; Debug.Log("bW:" + bAutoSizeW + " scale:" + layout.Scale + " tw:" + layout.TileW + " th:" + layout.TileH); //---------------------游戏区域 layout.GameAreaH = layout.TileH * MAX_NUM; layout.GameAreaW = layout.TileW * MAX_NUM; if (bAutoSizeW) { layout.GameAreaLeft = layout.UseableGameAreaLeft; layout.GameAreaRight = layout.UseableGameAreaRight; layout.GameAreaTop = layout.UseableGameAreaCenterY + layout.GameAreaH / 2; layout.GameAreaDown = layout.UseableGameAreaCenterY - layout.GameAreaH / 2; } else { layout.GameAreaTop = layout.UseableGameAreaTop; layout.GameAreaDown = layout.UseableGameAreaDown; layout.GameAreaLeft = layout.UseableGameAreaCenterX - layout.GameAreaW / 2; layout.GameAreaRight = layout.UseableGameAreaCenterX + layout.GameAreaW / 2; } layout.TileStartPos = new Vector3(layout.GameAreaLeft, layout.GameAreaTop, 0); //Debug.Log("test--->StartPos:"+ layout.TileStartPos); return(layout); }