Smash Hit oyunundaki top atma mekaniği Unity'de nasıl yapılır?

JURVET

Kilopat
Katılım
30 Nisan 2017
Mesajlar
465
Çözümler
2
Daha fazla  
Cinsiyet
Erkek
Herkese selam. Smash Hit oyununu bilirsiniz, oradaki top atma mekaniğini nasıl yapabilirim? Uzun süre Unity kullanmadım, çoğu bilgiyi unutmuşum. Kusura bakmayın.
 
Eğik atış formülü ile yapabilirsin.
Formül belli. Kullanıcının nereye atış yapacağı belli. Kuvvet belli.
Sadece formülü uygulayıp topa ivme vereceksin.

Matematik ve fizik.
Belki unity içerisinden de halledilebilir fakat yukarıdaki yöntemle kendinde oluşturabilirsin.
 
Artı -1 Eksi
Bu içeriği görüntülemek için üçüncü taraf çerezlerini yerleştirmek için izninize ihtiyacımız olacak.
Daha detaylı bilgi için, çerezler sayfamıza bakınız.
Bu video istediğini anlatıyor.
 
Artı -1 Eksi
Merhaba. Sana en basit şekilde anlatmaya çalışacağım.

Rigidbody.AddForce komutunu kullanacağız. Bunu için topun içinde Rigidbody ve tabi ki Collider olması lazım. Ardından çalışmasını istediğin zaman "top.GetComponent<Rigidbody>().AddForce(top.transform.forward * hiz)"
komutunu kullanacağız. Buradaki "hiz" değeri ne kadar ileri atmasını belirleyecek olan faktör. Kod dosyasını aşağıya da bıraktım.

Sorunuz olursa çekinmeden sorabilirsiniz.

Kolay gelsin...

Kod:
using UnityEngine;

public class Example : MonoBehaviour
{
    Rigidbody rgb;
    public float hiz = 20f; //Bu değeri ister buradan istersen de Inspector panelinden ayarlayabilirsin
    public GameObject top; //Buraya top objenini tanıtman gerekecek.

    void Start()
    {
        rgb = top.GetComponent<Rigidbody>();
    }

    void TopuFırlat()
    {
        rgb.AddForce(top.transform.forward * hiz);
    }
}

 
Sağ olun arkadaşlar ancak ben zaten atmayı yaptımda yön vermesinde sorun yaşıyorum yoksa düz bir sekilde öne doğru atabiliyorum yön vermesini nasıl yapacağım bastigim yere dogru gitmesini istiyorum.
 
Sağ olun arkadaşlar ancak ben zaten atmayı yaptımda yön vermesinde sorun yaşıyorum yoksa düz bir sekilde öne doğru atabiliyorum yön vermesini nasıl yapacağım bastigim yere dogru gitmesini istiyorum.
Attığım videoda bizzat bundan bahsediyor, ilk olarak ekranda basılan yerin pozisyonunu alacaksın ardından o videodaki gibi launchdata classı oluşturup orada kullanacaksın. Videoyu izle kodu yaz, yapamazsan tekrar mesaj at konuya beni etiketle yardımcı olurum.
 
Artı -1 Eksi
Sağ olun arkadaşlar ancak ben zaten atmayı yaptımda yön vermesinde sorun yaşıyorum yoksa düz bir sekilde öne doğru atabiliyorum yön vermesini nasıl yapacağım bastigim yere dogru gitmesini istiyorum.
Tekardan Merhaba.

Şöyle bir mantık kullanacağız. Ekranda tıkladığın yere bir gameobject oluşturup topumuzu bu objeye göre ileri fırlatacağız.

Kod aşağıda mevcut.

İyi çalışmalar.
Kod:
using UnityEngine;

public class Example : MonoBehaviour
{
    Rigidbody rgb;
    public float hiz = 20f;
    public GameObject prefab;

    void Start()
    {
        rgb = GetComponent<Rigidbody>();
    }

    void Update() {
      if(Input.GetMouseButton(0)){
          var screenPos = Input.mousePosition;
         
          GameObject pos = Instantiate(prefab, new Vector2(screenPos.x,screenPos.y), Quaternion.identity);
         
          rgb.AddForce(pos.transform.forward * hiz);
      }
  }
}
 
Sağ olun arkadaşlar ancak ben zaten atmayı yaptımda yön vermesinde sorun yaşıyorum yoksa düz bir sekilde öne doğru atabiliyorum yön vermesini nasıl yapacağım bastigim yere dogru gitmesini istiyorum.

İyi günler. Uyg yaptıysanız bana bütün kodları atabilir misiniz? Kendimi geliştirmek istiyorum yardımcı olursanız sevinirim.
 
Uygulamanın tüm kodları atmak bence çok yanlış bir seçin. Hangi konuda sıkıntınız varsa o konuyla ilgili yardım istemeniz daha uygun olacaktır.
Bana atarsanız daha çok yararı olacak ben zaten uyg kodlarını incelicem ihtiyacım var atarsanız çok mutlu olurum
Uygulamanın tüm kodları atmak bence çok yanlış bir seçin. Hangi konuda sıkıntınız varsa o konuyla ilgili yardım istemeniz daha uygun olacaktır.
Bana atarsanız daha çok yararı olacak ben zaten uyg kodlarını incelicem ihtiyacım var atarsanız çok mutlu olurum
 

Geri
Yukarı