public void Create() { transform.RemoveChildren(); transform.position = Ground.transform.position; _floors.Clear(); var firstFloor = Instantiate(firstFloorPrefab); DrawFloor(Ground, firstFloor); var prev = firstFloor; foreach (var floorType in _floorTypes) { var floor = Instance.FloorFactory.CreateFloor(floorType); _floors.Add(floor); var floorDrawer = floor.GetComponent<FloorDrawer>(); DrawFloor(prev, floorDrawer); prev = floorDrawer; } var lastFloor = Instantiate(lastFloorPrefab); roof = lastFloor; DrawFloor(prev, lastFloor); var size = (roof.transform.position + roof.UpperAnchor) - Ground.transform.position; var boxCollider = GetComponent<BoxCollider2D>(); boxCollider.offset = new Vector2(0, size.y / 2f); boxCollider.size = new Vector2(10, size.y); }
private void DrawFloor(FloorDrawer prev, FloorDrawer floor) { floor.transform.SetParent(transform, false); floor.transform.position = prev.transform.position + prev.UpperAnchor - floor.BottomAnchor; }