Как исправить ошибку ObjectPoolingManager.GetBullet C# unity

[сама ошибка1

Assets\Project\Scripts\Utils\ObjectPoolingManager.cs(35,23): error CS0161: 'ObjectPoolingManager.GetBullet()': not all code paths return a value

Сам код


    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    
    public class ObjectPoolingManager : MonoBehaviour
    {
    
        private static ObjectPoolingManager instance;
        public static ObjectPoolingManager Instance { get { return instance ; } } 
    
        public GameObject bulletPrefab;
        public int bulletAmount = 20;
        private List<GameObject> bullets;
        void Awake ()
        {
            instance = this;
    
            bullets = new List<GameObject>(bulletAmount);
    
            for ( int i = 0; i < bulletAmount; i++){
            GameObject prefabInstance = Instantiate (bulletPrefab); 
            prefabInstance.transform.SetParent (transform);
            prefabInstance.SetActive (false);
    
            bullets.Add (prefabInstance);
            }
        }
        public GameObject GetBullet () {
            foreach (GameObject bullet in bullets){
               if (!bullet.activeInHierarchy) {
                   bullet.SetActive (true);
                    return bullet;
                }
            }
            GameObject prefabInstance = Instantiate (bulletPrefab); 
            prefabInstance.transform.SetParent (transform);
            bullets.Add (prefabInstance);
        }
    }

Ответы (1 шт):

Автор решения: Алексей Шиманский

Нужно чтобы метод GetBullet возвращал GameObject. Сейчас, если if не сработает, то метод ничего не вернёт. Во всяком случае анализатор не может знать наверняка, что оттуда будет 100% что-то возвращаться. Поэтому либо надо код переписать по-другому, либо в конце тоже что-то возвращать по-умлочанию

→ Ссылка