public override void RefreshView() { //Debug.Log("view2D RefreshView"); RefreshGameObjs(); base.RefreshView(); #region room for (int i = 0; i < data.roomList.Count; i++) { GameObject obj = floors[i]; RoomView view = obj.GetComponent <RoomView>(); RoomData room = data.roomList[i]; view.SetData(room); List <Vector2> v2s = roomfunc.SetMesh(obj, room); Vector2 v2 = v2s[0]; obj.transform.localPosition = new Vector3(v2.x, v2.y, obj.transform.localPosition.z); for (int k = 0; k < v2s.Count; k++) { v2s[k] = v2s[k] - v2; } MaterialData floor = room.floor; List <List <Vector2> > list = linefunc.SetMesh(v2s, obj, floor.offsetX, floor.offsetY, floor.rotation, floor.tileSize_x, floor.tileSize_y, true); if (list != null) { roomfunc.SetArea(areas[i], list, v2); } if (selectObjData == room) { if (selectRoom == null) { selectRoom = prefabs.GetNewInstance_selectRoom().gameObject; } selectRoom.transform.localPosition = obj.transform.localPosition - Vector3.forward; linefunc.SetMesh(v2s, selectRoom, floor.offsetX, floor.offsetY, floor.rotation, floor.tileSize_x, floor.tileSize_y, true); selectRoom.SetActive(true); } Transform tran = areas[i].transform.FindChild("name"); TextMesh textmesh = tran.GetComponent <TextMesh>(); textmesh.text = room.type; } if ((selectObjData == null || selectObjData is RoomData == false) && selectRoom != null) { selectRoom.SetActive(false); } #endregion #region wall for (int i = 0; i < data.wallList.Count; i++) { WallData walldata = data.wallList[i]; GameObject wallline = wallLines[i]; GameObject wallLeft = wallsideLines[2 * i]; GameObject wallRight = wallsideLines[2 * i + 1]; GameObject wallLeftEnd = wallEndLines[2 * i]; GameObject wallRightEnd = wallEndLines[2 * i + 1]; if (walldata.hide == true) { wallline.SetActive(false); wallLeft.SetActive(false); wallRight.SetActive(false); wallLeftEnd.SetActive(false); wallRightEnd.SetActive(false); showLenLines[2 * i + 1].SetActive(false); showLenPoints[4 * i + 2].SetActive(false); showLenPoints[4 * i + 3].SetActive(false); showWords[2 * i + 1].SetActive(false); showLenLines[2 * i].SetActive(false); showLenPoints[4 * i].SetActive(false); showLenPoints[4 * i + 1].SetActive(false); showWords[2 * i].SetActive(false); continue; } else { wallline.SetActive(true); wallLeft.SetActive(true); wallRight.SetActive(true); //wallLeftEnd.SetActive(true); //wallRightEnd.SetActive(true); //showLenLines[2 * i + 1].SetActive(true); //showLenPoints[4 * i + 2].SetActive(true); //showLenPoints[4 * i + 3].SetActive(true); //showWords[2 * i + 1].SetActive(true); //showLenLines[2 * i].SetActive(true); //showLenPoints[4 * i].SetActive(true); //showLenPoints[4 * i + 1].SetActive(true); //showWords[2 * i].SetActive(true); } List <Vector2> tempList; SetObjWithData(walldata, wallline, wallLeft, wallRight, wallLeftEnd, wallRightEnd, out tempList); RoomData side1OnRoom = data.WallSideOnRoom(walldata.point1To2Data); RoomData side2OnRoom = data.WallSideOnRoom(walldata.point2To1Data); if (side2OnRoom != null) { ///左侧显示 GameObject showline = showLenLines[2 * i + 1]; GameObject showLeft = showLenPoints[4 * i + 2]; GameObject showRight = showLenPoints[4 * i + 3]; GameObject showWord = showWords[2 * i + 1]; SetShowObjWithData(walldata, showline, showLeft, showRight, showWord, tempList[4], tempList[5], walldata.c4); } if (side1OnRoom != null || side2OnRoom == null) { ///右侧显示 GameObject showline = showLenLines[2 * i]; GameObject showLeft = showLenPoints[4 * i]; GameObject showRight = showLenPoints[4 * i + 1]; GameObject showWord = showWords[2 * i]; SetShowObjWithData(walldata, showline, showLeft, showRight, showWord, tempList[1], tempList[2], walldata.c3); } } if ((selectObjData == null || selectObjData is WallData == false) && selectWall != null) { selectWall.SetActive(false); } if ((selectObjData is ProductData == false || selectGoodsdisedWalldata == null) && selectDisedwall != null) { selectDisedwall.SetActive(false); } #endregion #region point for (int i = 0; i < data.pointList.Count; i++) { Point p = data.pointList[i]; Vector2 pos = p.pos; //Debug.LogWarning("show "+ pos); wallPoints[i].transform.localPosition = new Vector3(pos.x, pos.y, wallPoints[i].transform.localPosition.z); wallPoints[i].name = "Point " + p.guid; PointView view = wallPoints[i].GetComponent <PointView>(); if (view == null) { Debug.LogWarning("wallPoints[i].GetComponent<PointView>() == null"); continue; } view.SetData(p); if (selectObjData == p) { if (selectPoint == null) { selectPoint = prefabs.GetNewInstance_selectPoint().gameObject; } selectPoint.transform.localPosition = wallPoints[i].transform.localPosition - Vector3.forward; selectPoint.SetActive(true); } } if ((selectObjData == null || selectObjData is Point == false) && selectPoint != null) { selectPoint.SetActive(false); } #endregion #region setWallLength for (int i = 0; i < inputWallLengths.Count; i++) { inputWallLengths[i].SetActive(false); } if (selectObjData is WallData) { WallData wall = selectObjData as WallData; int wallIndex = data.wallList.IndexOf(wall); RoomData side1OnRoom = data.WallSideOnRoom(wall.point1To2Data); RoomData side2OnRoom = data.WallSideOnRoom(wall.point2To1Data); if (side1OnRoom != null) { tempSideList = new List <Point>(); GameObject goF = inputWallLengths[3]; SetLengthHandleView viewF = goF.GetComponent <SetLengthHandleView>(); WallSideData indexF1 = roomfunc.GetNearCrossSide(side1OnRoom, wall.point1To2Data, true, tempSideList); viewF.SetData(indexF1); goF.SetActive(true); GameObject goT = inputWallLengths[4]; SetLengthHandleView viewT = goT.GetComponent <SetLengthHandleView>(); WallSideData indexT1 = roomfunc.GetNearCrossSide(side1OnRoom, wall.point1To2Data, false, tempSideList); viewT.SetData(indexT1); goT.SetActive(true); viewF.otherdata = indexT1; viewT.otherdata = indexF1; viewF.ForT = true; viewT.ForT = false; viewF.isParallelPointList = tempSideList; viewT.isParallelPointList = tempSideList; } if (side2OnRoom != null) { tempSideList = new List <Point>(); GameObject goF = inputWallLengths[1]; SetLengthHandleView viewF = goF.GetComponent <SetLengthHandleView>(); WallSideData indexF2 = roomfunc.GetNearCrossSide(side2OnRoom, wall.point2To1Data, true, tempSideList); viewF.SetData(indexF2); goF.SetActive(true); GameObject goT = inputWallLengths[2]; SetLengthHandleView viewT = goT.GetComponent <SetLengthHandleView>(); WallSideData indexT2 = roomfunc.GetNearCrossSide(side2OnRoom, wall.point2To1Data, false, tempSideList); viewT.SetData(indexT2); goT.SetActive(true); viewF.otherdata = indexT2; viewT.otherdata = indexF2; viewF.ForT = true; viewT.ForT = false; viewF.isParallelPointList = tempSideList; viewT.isParallelPointList = tempSideList; } GameObject go = inputWallLengths[0]; if (side1OnRoom == null && side2OnRoom == null) { WallSideData side = wall.point1To2Data; SetLengthHandleView view = go.GetComponent <SetLengthHandleView>(); view.SetData(side); view.otherdata = null; go.SetActive(true); } else { go.SetActive(false); } } #endregion }
public void setData(SetLengthHandleView view, Action exit) { this.bringData = view; this.deleExit = exit; control.OpenInput(currentWall.text.text, currentWall.text, onChange); }