using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Spawner : MonoBehaviour
{
public Birdy BirdScript;
public GameObject borular;
public float height;
private void start()
{
StartCoroutine(SpawnObject());
}
public IEnumerator SpawnObject()
{
while (!BirdScript.isDead)
{
Instantiate(borular, new Vector3(3, Random.Range(-height, height), 0), Quaternion.identity);
yield return now WaitForSeconds(1f);
}
}
}
Kod bu şekilde. Ama Unity Engine programında çalıştıramıyorum. Diğer kodları isterseniz gönderebilirim. Yazılımda yeniyim, düzgün karşılayın lütfen.
Kod Startta olduğu için çalışsa bile yalnızca 1 kere çalışır. Bunu Coroutine ile Update içerisinde yapmaya çalışırsanız da Memory Leak hatası alabilirsiniz. Öncelikle kodunuzu update e alın ve while şartı yerine bir sayı(örneğin 15 tane 15 tane ışınlasın ve ilk 15 i geçince 3. 15 i ışınlasın) gibi bir hale getirmeyi deneyin
BirdScript.isDead'ı başlangıçta true olarak tanımladın mı? Bool değişkenlerin C#'ta varsayılan değeri false. Belki orada bir sorun olabilir diye düşündüm. Çalışmıyor derken, hata vermiyor ama hiçbir değişiklik de olmuyor sanırım değil mi?
Kod Startta olduğu için çalışsa bile yalnızca 1 kere çalışır. Bunu Coroutine ile Update içerisinde yapmaya çalışırsanız da Memory Leak hatası alabilirsiniz. Öncelikle kodunuzu update e alın ve while şartı yerine bir sayı(örneğin 15 tane 15 tane ışınlasın ve ilk 15 i geçince 3. 15 i ışınlasın) gibi bir hale getirmeyi deneyin
BirdScript.isDead'ı başlangıçta true olarak tanımladın mı? Bool değişkenlerin C#'ta varsayılan değeri false. Belki orada bir sorun olabilir diye düşündüm. Çalışmıyor derken, hata vermiyor ama hiçbir değişiklik de olmuyor sanırım değil mi?
Bu kodda rb2D nesnesine bir referans atanmamış. RigidBody2D bileşenine sahip bir oyun objesini ataçladığınızdan emin olun. Onun haricinde mantık hatası yok.