예제 #1
0
    public static GameBlock Spawn(Sprite sprite, Sprite powerup, Vector3 localPosition, int block, Powerup?powerupId, Transform parent, int x, int y, bool isDeactivated = false)
    {
        // Attempt to use a pooled block
        tmp = null;
        for (int i = 0; i < Pool.Count; i++)
        {
            if (Pool[i] != null && !Pool[i].gameObject.activeSelf)
            {
                tmp = Pool[i];
                tmp.gameObject.SetActive(true);
                tmp.InitializeFromPool(sprite, powerup, localPosition, block, powerupId, parent, x, y, isDeactivated);
                return(tmp);
            }
        }

        // Create a new block
        tmp = (GameBlock)Instantiate(prefab);
        tmp.InitializeFromPool(sprite, powerup, localPosition, block, powerupId, parent, x, y, isDeactivated);
        Pool.Add(tmp);
        return(tmp);
    }