Why does my LIST is empty at play time
I wrote a script to place and remove cars in my city (this is done in the Editor). One method for each thing.
It works fine if I do not enter play mode. You can see how it works here.
The problem comes when I place the cars and then I enter play mode. The list gets cleared and loses its items (the instantiated cars), so I cannot delete them. You can see it here.
So, basically I have an array called carBuffer that stores the prefabs of cars I want to instantiate, decide how many I want to place (numberOfCars) and I iterate that many times, instantiating cars:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using PathCreation;
public class VehicleManager : MonoBehaviour
{
public PathCreator pathcreator;
public float VehicleSpeed = 50f;
public int carOffset = 200;
[Range(1, 200)]
public int numberOfCars;
public GameObject[] carBuffer;
[SerializeField]
List<GameObject> ListOfCars;
int carPosIterator = 0;
public void placecars()
{
for (int i = 0; i < numberOfCars; i++)
{
ListOfCars.Add(Instantiate(carBuffer[Random.Range(0, (carBuffer.Length))], pathcreator.path.GetPointAtDistance(carPosIterator), pathcreator.path.GetRotationAtDistance(carPosIterator), this.transform));
ListOfCars[i].GetComponent<CivillianCar>().distanceTravelled = carPosIterator;
ListOfCars[i].GetComponent<CivillianCar>().pathcreator = pathcreator;
ListOfCars[i].GetComponent<CivillianCar>().carVelocity = VehicleSpeed;
carPosIterator += carOffset;
}
carPosIterator = 0;
}
public void CleanCars()
{
if (ListOfCars.Count>0)
{
for (int i = 0; i < numberOfCars; i++)
{
DestroyImmediate(ListOfCars[i]);
}
}
ListOfCars.Clear();
}
}
Why does my List clear at playmode?
PS: the methods are being called from two editor buttons I wrote for this script.
And after a few year I have the same problem... Too bad no one answered. I believe that there's something to do with those editor buttons as I also use them and create the list by them.
Your answer
Follow this Question
Related Questions
Find entry in list based on part of the variable 0 Answers
How do I access variables from Scriptable Objects in an array? 0 Answers
How to get variable from a 2D list in c#? 1 Answer
Change variable value while running. 1 Answer
[C#] Instantiating via class references (Need help understanding) 1 Answer