Example #1
0
        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);
        }
Example #2
0
 private void DrawFloor(FloorDrawer prev, FloorDrawer floor)
 {
     floor.transform.SetParent(transform, false);
     floor.transform.position = prev.transform.position + prev.UpperAnchor - floor.BottomAnchor;
 }