Unity Engine C# kodu çalışmıyor

Katılım
16 Mayıs 2020
Mesajlar
169
Daha fazla  
Cinsiyet
Erkek
Kod:
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?
 

hata sol alttaki "expected" hatası
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Birdy : MonoBehaviour
{
public bool isDead;

public float velocity = 1f;
public Rigidbody2D rb2D;


void Update()
{
if (Input.GetMouseButtonDown(0))
{
rb2D.velocity = Vector2.up * velocity;

}
}
}

kod bu şekilde
 
Hata gözükmüyor hocam
 
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.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…