コード例 #1
0
    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);
        }
    }
コード例 #2
0
    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);
    }
コード例 #3
0
    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);
    }