Unity ateş ederken oyun duruyor

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 serinin 4. bölümüne kadar yaptım. Sonra 4. bölümde hata vermeye başladı. Mermi sayısını göstermeye çalışınca sonra FPS controller indirdim öyle çalıştırmayı denedim bu sefer ateş etmeden oyun duruyor açmaya çalışınca tekrar duruyor.
 
Son düzenleyen: Moderatör:
Unity'den oyunu başlatınca sol tıka basınca oyun duruyor.
Arkadaşlar, yüzlerce satırlık kodlara sahip olan projeler yapıyorsunuz bir zahmet azcık detay verin lütfen. Proje de ne yaptınız da böyle oldu, hangi kodu yazdıktan sonra olmaya başladı? Nereye tıklarken? her hangi bir yere mi, mümkün ise yazdığınız kodların birazını paylaşın.
 
Arkadaşlar, yüzlerce satırlık kodlara sahip olan projeler yapıyorsunuz bir zahmet azcık detay verin lütfen. Proje de ne yaptınız da böyle oldu, hangi kodu yazdıktan sonra olmaya başladı? Nereye tıklarken? her hangi bir yere mi, mümkün ise yazdığınız kodların birazını paylaşın.
Yazdığım kod, bu arada sorun ateş etme yeri Update kısmının ilk if kodunda.

Kod:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Silah : MonoBehaviour
{




    [Header("Bilgi")]
    public string isim;



    [Header("Mermi")]
    public float ToplamMermi;
    public float JarjörMermi;
    public float KalanMermi;
    public float atesHizi;
    float atesZamani;
    public bool ates;

    public float menzil;



    [Header("Reload")]
    public bool reload;
    float reloadZaman;
    public float reloadmaxZaman;




    [Header("Particle")]
    public GameObject mermiizi;
    public GameObject mermiDuman;




    [Header("Fener")]
    public bool isik;
    public Light fener;



    RaycastHit hit;
    public Animator anim;


    public Text KalanMermiText;
    public Text ToplamMermiText;



    void Start()
    {
        anim = GetComponent<Animator>();
        KalanMermiText.text = KalanMermi.ToString("00");
        ToplamMermiText.text = "/" + ToplamMermi.ToString("000");

    }


    void Update()
    {
        if (Input.GetMouseButton(0) && KalanMermi > 0 && !reload && !ates)
        {
            KalanMermi--;
            ates = true;
            anim.SetTrigger ("Ates");
            KalanMermiText.text = KalanMermi.ToString("00");
            ToplamMermiText.text = "/" + ToplamMermi.ToString("000");
            if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out hit, menzil))
            {
                //düşman bulma
            }
        }
        if (ates)
        {
            if (atesZamani > atesHizi)
            {
                atesZamani = 0;
                ates = false;
            }
            else
            {
                atesZamani += Time.fixedDeltaTime;
            }
        }
        if (Input.GetKeyDown(KeyCode.R) && !reload && ToplamMermi > 0)
        {
            reload = true;
            anim.SetTrigger("Reload");
            reloadZaman = 0;
        }
        if (reload)
        {
            if (reloadZaman > reloadmaxZaman)
            {
                float ihtiyacMermi = JarjörMermi - KalanMermi;
                if (ihtiyacMermi > ToplamMermi)
                {
                    KalanMermi += ToplamMermi;
                    ToplamMermi = 0;
                }
                else
                {
                    KalanMermi = JarjörMermi;
                    ToplamMermi -= ihtiyacMermi;
                }
                KalanMermiText.text = KalanMermi.ToString("00");
                ToplamMermiText.text = "/" + ToplamMermi.ToString("000");
                reload = false;
            }
            else
            {
                reloadZaman += Time.deltaTime;
            }

        }
    }
}
 
Oyun duruyor derken ne oluyor ? Çöküyor mu ? Yoksa sizin bir oyun durdurma paneliniz var da ekrana o mı çıkıyor ? Sanırım ateş ettikten sonra ya da ateş ettiğiniz zaman kodlar da hata yaptınız ve yanlış işlemler yapıyor.

Kod:
if (Input.GetMouseButton(0))
{

}

Bu kodu yazmanız lazım, kodlarınızı inceleyin. Nerede yazmışsınız bir bakın ve bulup bana ekran görüntüsünü atın.
 
Oyun duruyor derken ne oluyor ? Çöküyor mu ? Yoksa sizin bir oyun durdurma paneliniz var da ekrana o mı çıkıyor ? Sanırım ateş ettikten sonra ya da ateş ettiğiniz zaman kodlar da hata yaptınız ve yanlış işlemler yapıyor.

Kod:
if (Input.GetMouseButton(0))
{

}

Bu kodu yazmanız lazım, kodlarınızı inceleyin. Nerede yazmışsınız bir bakın ve bulup bana ekran görüntüsünü atın.
Yukarıdaki Pause tuş aktik oluyor.
Bu arada işe yaramadı, sol tık yerine sağ tık aldım tekrar ateş etmeyi denedim ve aynı şey oldu.
Birde reload için R tuşuna basıyorum tekrar oyun duruyor.
fdggsg.jpg
 
Son düzenleme:
Kod:
if (Input.GetMouseButton(0))
        {
            KalanMermi--;
            ates = true;
            anim.SetTrigger ("Ates");
            KalanMermiText.text = KalanMermi.ToString("00");
            ToplamMermiText.text = "/" + ToplamMermi.ToString("000");
            if (Physics.Raycast(Camera.main.transform.position, Camera.main.transform.forward, out hit, menzil))
            {
                //düşman bulma
            }
        }
        if (ates)
        {
            if (atesZamani > atesHizi)
            {
                atesZamani = 0;
                ates = false;
            }
            else
            {
                atesZamani += Time.fixedDeltaTime;
            }
        }
diye düzeltin
 
Uyarı! Bu konu 8 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı