public static IBrick GetBrick(EBrickType brickType, GameObject owner) { IBrick brick; switch (brickType) { case EBrickType.Damage: brick = new DamageBrick(); break; case EBrickType.Slow: brick = new SlowBrick(); break; default: brick = new NullBrick(); break; } brick.SetUp(owner); return(brick); }
public void GenBrick() { if (PlayerObject.IsPlay) { var xPosition = Random.Range(leftLimiter.position.x, rightLimiter.position.x); var position = new Vector3(xPosition, transform.position.y, 0f); BrickObject newBrick; if (0 < Bricks.Count) { newBrick = Bricks.Dequeue(); newBrick.transform.position = position; newBrick.gameObject.SetActive(true); } else { newBrick = Instantiate(brickPrefab, position, Quaternion.identity, transform); } float randomBrick = Random.Range(0f, 100f); EBrickType brickType = EBrickType.Damage; if (EBrickType.Count != brickTypeOverride) { brickType = brickTypeOverride; } else { if (50f <= randomBrick) { brickType = EBrickType.Slow; } } newBrick.ownBrick = BrickFactory.GetBrick(brickType, newBrick.gameObject); newBrick.spriteRenderer.sprite = sprites[(int)brickType]; } }