Не уверен, что вы хотите, но, кажется, это не так сложно. Поскольку вы уже знаете, как назначать сериализуемые значения в Unity с помощью инспектора, просто объявите массив Truck
, например:
private Vector3[] truckStartPoints;
public GameObject[] Trucks;
И, как общий совет по кодированию Unity, следующее лучше (если вы не должен получить к нему доступ из другого класса):
[SerializeField]
private GameObject[] trucks;
Это делает trucks
недоступным из другого кода, но все же может быть сериализовано через инспектор.
И инициализироваться следующим образом:
private void Start()
{
truckStartPoints = new Vector3[trucks.Length];
for (int i = 0; i < trucks.Length; i++)
truckStartPoints[i] = trucks[i].transform.position;
}
И сбросить так:
private void OnCollisionEnter(Collision collisionInfo)
{
if (collisionInfo.collider.gameObject == lava)
{
Player.transform.position = Spawn.transform.position;
for (int i = 0; i < trucks.Length; i++)
trucks[i].transform.position = truckStartPoints[i];
}
}