Синтаксис:
Используется csharp
public Transform spawnPoint;
public GameObject[] tilePrefabs;
public float reloadTime;
public float tileSpeed;
public bool inSpawn;
IEnumerator SpawnCo;
private void Start()
{
SpawnCo = SpawnCoroutine();
StartCoroutine(SpawnCoroutine());
}
private void Update()
{
if (!inSpawn )
{
StartCoroutine(SpawnCoroutine());
}
}
IEnumerator SpawnCoroutine()
{
inSpawn = true;
SpawnTile();
tileSpeed += 0.3F;
yield return new WaitForSeconds(30/tileSpeed);//30 - это длина платформы, tileSpeed - это скорость движения платформы
inSpawn = false;
}
private void SpawnTile()
{
tile = Instantiate(tilePrefabs[0], spawnPoint.transform.position, Quaternion.identity);
tile.transform.SetParent(transform);
}
public GameObject[] tilePrefabs;
public float reloadTime;
public float tileSpeed;
public bool inSpawn;
IEnumerator SpawnCo;
private void Start()
{
SpawnCo = SpawnCoroutine();
StartCoroutine(SpawnCoroutine());
}
private void Update()
{
if (!inSpawn )
{
StartCoroutine(SpawnCoroutine());
}
}
IEnumerator SpawnCoroutine()
{
inSpawn = true;
SpawnTile();
tileSpeed += 0.3F;
yield return new WaitForSeconds(30/tileSpeed);//30 - это длина платформы, tileSpeed - это скорость движения платформы
inSpawn = false;
}
private void SpawnTile()
{
tile = Instantiate(tilePrefabs[0], spawnPoint.transform.position, Quaternion.identity);
tile.transform.SetParent(transform);
}
Проблема в том, что между платформами есть просвет длиной где то в 0,5 единицы. Конечно, можно дописать, что-то типа WaitForSeconds(30/tileSpeed-0.5F), чтобы убрать просвет, но что-то мне подсказывает, что это неправильное решение. Может мой метод вообще не правильный?