public override void Init(int width, AbstractSubTile subTilePrefab) { base.Init(width, subTilePrefab); if (_boxCollider == null) { _boxCollider = gameObject.AddComponent <BoxCollider>(); } _boxCollider.size = new Vector3(width, 1, width); var offset = 0.5f * width - 0.5f; _boxCollider.center = new Vector3(offset, -0.5f, -offset); for (var i = 0; i < width; i++) { for (var j = 0; j < width; j++) { var subTile = CreateSubTile(); subTile.transform.SetParent(transform); subTile.transform.localPosition = new Vector3(i, 0, -j); _subTiles.Add(subTile); } } }
protected AbstractGenerator(AbstractSubTile subTilePrefab, int startPlatformWidth, AbstractDiamondGenerator diamondGenerator) { _subTilePrefab = subTilePrefab; _startPlatformWidth = startPlatformWidth; _diamondGenerator = diamondGenerator; _container = new GameObject("Level"); }
protected virtual AbstractTile GenerateTile(int width, AbstractSubTile subTilePrefab, Action <AbstractTile> onCollisionExitAction) { var tile = CreateTile(); tile.Init(width, subTilePrefab); tile.transform.SetParent(_container.transform); tile.transform.position = _nextTilePos; tile.CollisionExitEvent += TileOnCollisionExitEvent; _tiles.Add(tile); return(tile); }
public virtual void Init(int width, AbstractSubTile subTilePrefab) { if (_rigidbody == null) { _rigidbody = gameObject.AddComponent <Rigidbody>(); } _rigidbody.isKinematic = true; if (_subTiles == null) { _subTiles = new List <AbstractSubTile>(); } _subTilePrefab = subTilePrefab; }
public CubeLevelGenerator(AbstractSubTile subTilePrefab, int startPlatformWidth, AbstractDiamondGenerator diamondGenerator) : base(subTilePrefab, startPlatformWidth, diamondGenerator) { }