using System; using System.Collections.Generic; using UnityEngine; public class CarManagerScript : MonoBehaviour { [SerializeField] private List _CarPrefs; [SerializeField] private GameObject[] _Points = new GameObject[2]; [SerializeField] bool _LeftToRight; private void Start() { _LeftToRight = GetRandomObject(new List { true, false }); StartMove(); } [SerializeField] private int _Speed; private void FixedUpdate() { if (_Car != null) { if (_LeftToRight) { _Car.transform.Translate(Vector3.forward * Time.deltaTime * _Speed); } else if (!_LeftToRight) { _Car.transform.Translate(Vector3.forward * Time.deltaTime * _Speed); } } } private GameObject _Car; private void StartMove() { Vector3 pos; Quaternion rot; if (_LeftToRight) { pos = _Points[0].transform.position; rot = Quaternion.Euler(0, 90, 0); _Car = Instantiate(GetRandomObject(_CarPrefs), pos, rot); } else if (!_LeftToRight) { pos = _Points[1].transform.position; rot = Quaternion.Euler(0, -90, 0); _Car = Instantiate(GetRandomObject(_CarPrefs), pos, rot); } //_Car.transform.SetParent(gameObject.transform, _Points[1].transform); } public void DeleteCar() { Destroy( _Car ); StartMove(); } T GetRandomObject(List list) { // проверка на пустоту списка if (list == null || list.Count == 0) { return default; } // Генерация случайного индекса int randomIndex = UnityEngine.Random.Range(0, list.Count); return list[randomIndex]; } }