Скрипт перемещения машин
This commit is contained in:
84
Assets/Crossy Road VR/Scripts/CarManagerScript.cs
Normal file
84
Assets/Crossy Road VR/Scripts/CarManagerScript.cs
Normal file
@ -0,0 +1,84 @@
|
||||
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];
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user