Список становится нулевым при доступе в собственном классе после заполнения дочернего класса - PullRequest
0 голосов
/ 17 июня 2020

Я пытаюсь заполнить список игровых объектов, которые я создаю каждые X секунд. Этот список создается в одном классе (PickUpWeapons) как таковой:

//list of weapons spawned over the course of the game
public List<GameObject> weaponsToPickUp = new List<GameObject>();

И в моем классе, где я создаю оружие (SpawnObjects), я заполняю этот список как таковой: PickUpWeapons pickUp; //reference to pickUpWeapons class

//instanciate
private void Start() {
    //generate instance of the pool
    objectPooler = ObjectPooler.Instance;

    pickUp = gameObject.AddComponent<PickUpWeapons>();  //instanciate the class
    //pickUp.weaponsToPickUp = new List <GameObject>();
}

private void FixedUpdate() {
    //only spawn objects if it is time
    if (Time.time > nextSpawnTime) {
        //update next spawn time
        nextSpawnTime = Time.time + spawnRateWeapons;
        //where we spawn the weapons
        float randomXPos = Random.Range(- xMax, xMax);
        whereToSpawn = new Vector2(randomXPos, transform.position.y);
        //generate object
        GameObject bullet = ObjectPooler.Instance.SpawnFromPool("Bullet", whereToSpawn, Quaternion.identity);
        //freeze its position on X only
        bullet.GetComponent<Rigidbody2D>().constraints = RigidbodyConstraints2D.FreezePositionX;

        //add weapon generated as a potentially picked up weapon
        pickUp.weaponsToPickUp.Add(bullet);
        Debug.Log(pickUp.weaponsToPickUp.Count);
    }
}
}

В этом классе (SpawnObjects) pickUp.weaponsToPickUp не является пустым, и Журнал не указывает на увеличение размера weaponsToPickUp. Однако, вернувшись в класс PickUpWeapons, этот список теперь пуст.

Кто-нибудь знает, что я могу сделать, чтобы решить эту проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...