- Home /
Array of objects on a MonoBehaviour script not persisting after pulling from source control
I have a script which has an array of vehicle objects and an array of directions which are both populated through the inspector. It works fine for me but I have another laptop that can't seem to pull the changes properly from source control (git). Whenever the scene with this script is changed, if I update the other laptop, the array of directions is unchanged but the array of vehicles is a list of 30 empty objects. The script is here:
using System.Linq;
using UnityEngine;
namespace Game.Vehicles
{
public class VehicleManager : MonoBehaviour
{
[SerializeField] private Vehicle[] _vehicleObjList;
public Vehicle[] VehicleObjList { get { return _vehicleObjList; } set { _vehicleObjList = value; } }
[Header("Directions")]
[SerializeField] private DirectionRotation[] _facingDirections;
public DirectionRotation[] FacingDirections { get { return _facingDirections; } }
public Vehicle SpawnVehicle(VehicleType type)
{
var eligibleVehicles = VehicleObjList.Where(x => x.VehicleType == type);
var vehicleObj = eligibleVehicles.ToList().GetRandomListElement();
var vehicle = Instantiate(vehicleObj);
vehicle.Setup(FacingDirections);
return vehicle;
}
}
}
I've tried creating a prefab with the script and the issue still occurs and I've also tried creating a new version of the script without any luck. All the objects in the list are in the scene on both machines so that shouldn't be the problem. I've also tried pulling the project from source control onto a friends machine and it works without any issues there .
The Vehicle object used above is also a MonoBehaviour script but the DirectionRotation is just a serialized class with a float and an enum value.
Any ideas would be appreciated!
That sounds like a problem with cource control. Are you commiting .meta files? They are vital for all the references in the scene.
We are checking in meta files, yeah but spent some digging with regards to the meta files and found 2 versions of them on the machine having issues. Basically it had references to the same objects in the list but in 2 different locations. Deleted the wrong set and pulled down the meta files again and it's all working now. Thanks for the suggestion, it really helped out!