Esempio n. 1
0
    public GameObject AddNewObject(ObjectEnums name)
    {
        if (name == ObjectEnums.SmallBallStack)
        {
            GameObject newGO = GameObject.Instantiate(SmallBallStack, Camera.main.transform.position, Quaternion.identity);
            newGO.gameObject.SetActive(false);
            GameObject.DontDestroyOnLoad(newGO);
            _objectsPool[name].Add(newGO);
            return(newGO);
        }
        else if (name == ObjectEnums.BigBallLine)
        {
            GameObject newGO = GameObject.Instantiate(BigBallLine, Camera.main.transform.position, Quaternion.identity);
            newGO.gameObject.SetActive(false);
            GameObject.DontDestroyOnLoad(newGO);
            _objectsPool[name].Add(newGO);
            return(newGO);
        }
        else if (name == ObjectEnums.BigCube)
        {
            GameObject newGO = GameObject.Instantiate(BigCube, Camera.main.transform.position, Quaternion.identity);
            newGO.gameObject.SetActive(false);
            GameObject.DontDestroyOnLoad(newGO);
            _objectsPool[name].Add(newGO);

            float randomColorCube = UnityEngine.Random.value;
            if (randomColorCube < 0.3)
            {
                newGO.tag = "Red";
            }
            else if (randomColorCube > 0.3 && randomColorCube < 0.6)
            {
                newGO.tag = "Green";
            }
            else
            {
                newGO.tag = "Black";
            }

            return(newGO);
        }
        else
        {
            GameObject newGO = GameObject.Instantiate(CylinderStack, Camera.main.transform.position, Quaternion.identity);
            newGO.gameObject.SetActive(false);
            GameObject.DontDestroyOnLoad(newGO);
            _objectsPool[name].Add(newGO);
            return(newGO);
        }
    }
Esempio n. 2
0
    public GameObject GetObjectForScene(ObjectEnums name)
    {
        if (_objectsPool[name].Count == 0)
        {
            _objectsPool[name].Add(AddNewObject(name));
        }

        if (_objectsPool[name].Count > 0)
        {
            GameObject goForScene = _objectsPool[name][_objectsPool[name].Count - 1];

            _objectsPool[name].RemoveAt(_objectsPool[name].Count - 1);
            return(goForScene);
        }

        return(null);
    }