public static void PreinstantiateBrick(BrickAvatar.BrickType brickType, int _numberOfBricksToPreinstantiate) { Queue <BrickAvatar> availableAvatar = BricksFactory.instance.availableBrickByType[brickType]; for (int i = 0; i < _numberOfBricksToPreinstantiate; i++) { BrickAvatar avatar = InstantiateBrick(brickType); if (avatar == null) { Debug.LogError(string.Format("PreinstantiateAvatar() failure to {0} ennemy !", _numberOfBricksToPreinstantiate)); return; } availableAvatar.Enqueue(avatar); } }
public static BrickAvatar GetBrick(BrickAvatar.BrickType brickType) { Queue <BrickAvatar> availableBricks = BricksFactory.instance.availableBrickByType[brickType]; BrickAvatar avatar; if (availableBricks.Count > 0) { avatar = availableBricks.Dequeue(); } else { avatar = InstantiateBrick(brickType); } avatar.gameObject.SetActive(true); return(avatar); }
public static BrickAvatar InstantiateBrick(BrickAvatar.BrickType brickType) { GameObject brick = null; switch (brickType) { case BrickAvatar.BrickType.simpleBrick: brick = GameObject.Instantiate(instance.simpleBrickPrefab); break; } brick.SetActive(false); brick.transform.parent = BricksFactory.instance.gameObject.transform; BrickAvatar avatar = brick.GetComponent <BrickAvatar>(); BricksFactory.instance.brickCount++; return(avatar); }