• 16-05-2020, 21:54:07
    #1
    Selamun aleykum, yıllar sonra oyun geliştirmeye tekrar başlamayı düşündüm. Kodlama bilgim tamamen sıfırlanmış durumda, toparlamaya çalışıyorum. Ayrıca son 5-6 yıldır çok güncelleme almış unity, bir çok şey değişmiş.

    Sorum şu, nesneyi bir pozisyondan başka bir pozisyona belli bir ivmede taşımam lazım. Yani A konumundan B konumuna x hızında gitmesi lazım ama bir türlü yapamadim.

    Transform.pozition ile yapınca nesne ışınlanıyor. Velocity veya addforce ile yapınca da ivme alıyor ama durmuyor. Bunun için dotween kütüphanesi kullanmışlar nette gördüğüm kadarıyla. Sırf bunun için de uğraşmak istemiyorum bilmediğim bir konuyla.

    Bunu yapmanın akıllıca ve performanslı bir yolu yok mu? Lütfen yardımcı olun
  • 16-05-2020, 22:02:46
    #2
    Hareket kodunuzu paylaşırsanız daha hızlı çözüm üretilir.
  • 16-05-2020, 22:33:43
    #3
    Tasaranadam adlı üyeden alıntı: mesajı görüntüle
    Hareket kodunuzu paylaşırsanız daha hızlı çözüm üretilir.
    Hocam mobildeyim şuan. Kısaca iki vektör pozisyonu arasında bir ivme oluşturmak istiyorum. Transform.position da ivme veya velocity de hedef pozisyon eklemem lazım. Bunun öntanımlı bir kod bloğu yok mu? Yabancı sitelerden baktım ama doğru düzgün bir şey bulamadım.
  • 17-05-2020, 09:32:21
    #4
    Input.GetAxis veya Input.GetAxisRaw ile yapabilirsiniz. Aşağıda paylaştığım kod 2D platform oyunundaki player'a x ekseninde hareket için yazdığım kod oluyor. Time.deltaTime ile çarptığınızda hareketi belirli bir zaman aralığında uyguluyor, speed değişkeninden de hızı ayarlarsınız buna göre.

    float horizontal = Input.GetAxis("Horizontal");
    transform.position += new Vector3(horizontal * speed * Time.deltaTime, 0, 0);
  • 17-05-2020, 09:46:21
    #5
    mfa95 adlı üyeden alıntı: mesajı görüntüle
    Hocam mobildeyim şuan. Kısaca iki vektör pozisyonu arasında bir ivme oluşturmak istiyorum. Transform.position da ivme veya velocity de hedef pozisyon eklemem lazım. Bunun öntanımlı bir kod bloğu yok mu? Yabancı sitelerden baktım ama doğru düzgün bir şey bulamadım.
    lerp ile yapabilirsiniz. position = vector3.lerp(ilkkonum, son konum, hız * time.deltatime)
  • 18-05-2020, 22:25:40
    #6
    caglar1 adlı üyeden alıntı: mesajı görüntüle
    lerp ile yapabilirsiniz. position = vector3.lerp(ilkkonum, son konum, hız * time.deltatime)
    Teşekkürler. Lerp 'in tam olarak bu işe yaradığını bilmiyordum. Eğitimlerde bilgi eksikliği var maalesef.