public GameObject Spawn(GameObject targetObject, Vector3 pos, Quaternion rotation)
            {
                if (!poolDictionary.ContainsKey(targetObject.name))
                {
                    SetUpPool(targetObject);
                    Debug.LogWarning("Pool whith name " + targetObject.name + " doesn´t exist, create it in editor to prevent lags");
                    //return ;
                }
                GameObject obj;

                if (poolDictionary[targetObject.name].Count == 0)
                {
                    Debug.LogWarning("Pool whith name " + targetObject.name + " has empty queue, try increase number of spawned objects");
                    obj = Instantiate(targetObject);
                }
                else
                {
                    obj = poolDictionary[targetObject.name].Dequeue();
                }
                obj.transform.position = pos;
                obj.transform.rotation = rotation;
                obj.SetActive(true);
                IPoolSystem pooledObj = obj.GetComponent <IPoolSystem>();

                if (pooledObj != null)
                {
                    pooledObj.OnPoolSpawn();
                }
                return(obj);
            }
            public void PlaySound(AudioClip clip, Vector3 pos, Quaternion rotation)
            {
                GameObject obj;

                if (poolDictionary["AudioProp"].Count == 0)
                {
                    Debug.LogWarning("Pool whith name AudioProp has empty queue, try increase number of spawned objects");
                    obj = Instantiate(audioProp);
                }
                else
                {
                    obj = poolDictionary["AudioProp"].Dequeue();
                }
                obj.GetComponent <AudioSource>().clip = clip;
                obj.transform.position = pos;
                obj.transform.rotation = rotation;
                obj.SetActive(true);
                IPoolSystem pooledObj = obj.GetComponent <IPoolSystem>();

                if (pooledObj != null)
                {
                    pooledObj.OnPoolSpawn();
                }
            }