Я создаю плитки как путь, на каждых четырех экземплярах плитки они должны начинать создавать экземпляры вправо, после четырех экземпляров они go снова прямые.
, чтобы проверить эту логику c I , сделал переменную spawnOffset и увеличил +1 на каждый кадр.
если spawnOffset% 4 == 0 изменить направление
но я не получая смены направления через равные промежутки времени, когда я отлаживаю, кадр пропускает и логика c
public GameObject go;
public Transform Playertransform;
public Vector3 tileSpawnOffset = Vector3.zero;
private Vector3 direction = Vector3.forward;
public int SpawnOffset = -3;
private bool turnRight = false;
void Update()
{
SpawnPath();
ChangeDirection();
}
void SpawnPath()
{
if (Playertransform.position.z > SpawnOffset)
{
tileSpawnOffset += direction;
Instantiate(go, this.transform.position + tileSpawnOffset, this.transform.rotation, this.transform);
SpawnOffset++;
}
}
void ChangeDirection()
{
if (SpawnOffset % 4 == 0)
{
turnRight = !turnRight;
}
direction = turnRight == true ? Vector3.right : Vector3.forward;
}
и но когда я пытался со временем вместо
float time = 0f;
void ChangeDirection()
{
time += Time.deltaTime;
if (time > 1)
{
turnRight = !turnRight;
time = 0;
}
direction = turnRight == true ? Vector3.right : Vector3.forward;
}
все работает отлично. Итак, как я мог это исправить. Я не хочу использовать время, я хочу изменить направление точно после появления 4 плиток