[SerializeField] UnityEvent eventer; // создаем
...
eventer.Invoke(); //как запускаем
[SerializeField] float _minRand = 87f;
[SerializeField] float _maxRand = 130f;
[SerializeField] GameObject _car;
[SerializeField] float _checkSphereRad = 2f;
[SerializeField] LayerMask _carMask;
void Start()
{
StartCoroutine(Spawner());
}
IEnumerator Spawner()
{
while (true)
{
float rand = Random.Range(_minRand, _maxRand);
Vector3 pos = new Vector3(-5.5f, 0.5f, rand);
if (Physics.CheckSphere(pos, _checkSphereRad, _carMask)) continue;
GameObject newCar = Instantiate(_car, pos, Quaternion.identity);
Destroy(newCar, 20f);
yield return new WaitForSeconds(2.8f);
}
}
}
[SerializeField] Transform _target; //<= обьект для слежения
[SerializeField] float _yOffset=1f;
private void LateUpdate()
{
transform.position = new Vector3(_target.position.x, _yOffset, _target.position.z);
}
Я далек от UI, можно попробовать удалить то что есть и создать новый канвас и по идеи должно создаются новая система, по идеи кнопки должны обрабатываться. Вариант 2 это написать эвент систему через код там надо подключить интерфейс IPointerClickHandler
по сути это тот же клик по объекту (можно даже убрать компонент кнопки) только через код (не уверен что все верно написал, что в памяти всплыло)