unity c# random hareket(help)

memurvadisi1

Kayıtlı Üye
Katılım
12 Nisan 2014
Mesajlar
3.024
Tepkime puanı
0
Puan
0
Merhabalar, bir proje için random harekete ihtiyacım var yapıyı kurdum fakat döngü olayında sıkıntı yaşıyorum şuanki hali sadece startta verilen kordinata gidiyor ve duruyor(x,y) benim istediğim gittikten sonra yeni kordinatlar verilsin ve o kordinata devam etsin.
for döngüsü ile düşündüm fakat kordinatta eksi değer verebiliyorum sürekli ++ olarak gitmiyor yani fikir verebilecek varsa ona göre düşüneyim beynim yandı :)

Kod:
        Vector3 obj;
	float speed= 0.01f;
	public float ranX;
	public float ranY;

	// Use this for initialization
	void xrandom(){
		ranX = float.Parse (Random.Range(-2.4f, 2.4f).ToString ("0.##"));
	}

	void yrandom(){
		ranY = float.Parse (Random.Range(-4.6f, 4.6f).ToString ("0.##"));
	}

	// Update is called once per frame
	void Update () {
		if ((obj.x > ranX) && (obj.y > ranY)) {
			obj.x -= speed;
			obj.y -= speed;
			transform.position = obj;
		}
		if ((obj.x > ranX) && (obj.y < ranY)) {
			obj.x -= speed;
			obj.y += speed;
			transform.position = obj;
		}
		if ((obj.x < ranX) && (obj.y < ranY)) {
			obj.x += speed;
			obj.y += speed;
			transform.position = obj;
		}
		if ((obj.x < ranX) && (obj.y > ranY)) {
			obj.x += speed;
			obj.y -= speed;
			transform.position = obj;
		}
		if ((obj.x == ranX) && (obj.y == ranY)) {
			xrandom();
			yrandom();
		}

	}
 
tam olarak ne istediğini anlamadım ama tek yön gidiyorsa sürekli rotation değiştirirsin 90 derece yönü öyle değiştirebilirsin
 
tam olarak ne istediğini anlamadım ama tek yön gidiyorsa sürekli rotation değiştirirsin 90 derece yönü öyle değiştirebilirsin

kod şunu yapıyor.
startta random bir kordinat belirliyor x,y objeyi o kordinata götürüyor.

benim istediğim o kordinata gittikten sonra tekrar random kordinat belirlemesi ve o kordinata gitmesi yani kendini döngüye sokması ama 2. kordinatı belirlemiyor.

edit: problemi çözdüm sorun obj.x in float 0.54646 tarzında sayı üretmesiymiş bunuda eşitleyemiyor, şunu ekleyince düzeldi ihtiyacı olan olabilir diye kaldırmıyorum kodu.

obj.x = float.Parse (obj.x.ToString ("0.##"));
 
Son düzenleme:
en sonda döngü tamamlanınca yani = olduğunda döngü bitiyor buraya tekrardan başlangıç döngüsü yazabilirsiniz.Hatta döngü bitince timer koyup yeniden döngü başlaaycak cinsinde bilgi mesajı verirsen daha hoş olur
 
Kişiselleştirme

Tema editörü

Ayarlar Renkler

  • Mobil kullanıcılar bu fonksiyonları kullanamaz.

    Alternatif header

    Farklı bir görünüm için alternatif header yapısını kolayca seçebilirsiniz.

    Görünüm Modu Seçimi

    Tam ekran ve dar ekran modları arasında geçiş yapın.

    Izgara Görünümü

    Izgara modu ile içerikleri kolayca inceleyin ve düzenli bir görünüm elde edin.

    Resimli Izgara Modu

    Arka plan görselleriyle içeriğinizi düzenli ve görsel olarak zengin bir şekilde görüntüleyin.

    Yan Paneli Kapat

    Yan paneli gizleyerek daha geniş bir çalışma alanı oluşturun.

    Sabit Yan Panel

    Yan paneli sabitleyerek sürekli erişim sağlayın ve içeriğinizi kolayca yönetin.

    Box görünüm

    Temanızın yanlarına box tarzı bir çerçeve ekleyebilir veya mevcut çerçeveyi kaldırabilirsiniz. 1300px üstü çözünürler için geçerlidir.

    Köşe Yuvarlama Kontrolü

    Köşe yuvarlama efektini açıp kapatarak görünümü dilediğiniz gibi özelleştirin.

  • Renginizi seçin

    Tarzınızı yansıtan rengi belirleyin ve estetik uyumu sağlayın.

Geri