2024-12-17 21:46:56 +03:00

85 lines
1.9 KiB
C#

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