C# UnityEvent birden fazla tetikleniyor

O zaman if (isTapped) return balık tıklandıktan sonra bir daha tıklanmayı engelliyor. Tıklama sonrasında isTapped durumunu sıfırlamadığın için bu kontrol sürekli balık tıklandı kalıyor.

Balık tıklandığında durum isTapped = true. Balığın puan kazanma işlemi tamamlandıktan sonra tekrar false yapalım bu değişkeni.
Kod:
bool isTapped = false;
float tapCooldown = 0.2f;
float tapCooldownTimer = 0f;

void Update()
{
    tapCooldownTimer -= Time.deltaTime;

    if (Input.GetMouseButtonDown(0) && tapCooldownTimer <= 0f)
    {
        Click();
        tapCooldownTimer = tapCooldown;
    }
}

public void TapFish(GameObject go)
{
    if (isTapped) return;

    isTapped = true;
    fishTriggerEvent?.Invoke(go);
    SpawnFish();
}

void MovePoint()
{
    if ((scorePos - (Vector2)pointObject.transform.position).sqrMagnitude != 0f)
    {
        pointObject.transform.position = Vector2.MoveTowards(pointObject.transform.position, scorePos, 7f * Time.deltaTime);
    }
    else
    {
        if (!bubbleEffect.isPlaying)
        {
            ReturnPool();
        }

        if (!isPointAdd)
        {
            PointManager.Instance.addPoint(point);
            pointText.text = "";
            isPointAdd = true;
            isTapped = false;
        }
    }
}

Kafanızın karışmaması için açıklamaları sildim.

Az önceki kodu silip yerine bunu koyun.
Hocam yaptım ama puanlar, varacağı noktaya kadar hiçbir şekilde balıklara basılmıyor. Hocam sizin taktiğiniz çok güzel bu arada. Çok beğendim. Başka bir yerde kullanacağım. Sorunu çözdüm hocam. Sorun aslında fazla triggerlanmaktan kaynaklanmıyor. Hit.collider'dan dolayı sadece bir kere tetikleniyor. Sorun ben kodlarda hata yapmışım, ondan fazla puan veriyor.

Teşekkür ettim size.
 
Son düzenleme:
Hocam yaptım ama puanlar, varacağı noktaya kadar hiçbir şekilde balıklara basılmıyor. Hocam sizin taktiğiniz çok güzel bu arada. Çok beğendim. Başka bir yerde kullanacağım. Sorunu çözdüm hocam. Sorun aslında fazla triggerlanmaktan kaynaklanmıyor. Hit.collider'dan dolayı sadece bir kere tetikleniyor. Sorun ben kodlarda hata yapmışım, ondan fazla puan veriyor.

Teşekkür ettim size.
Rica ederim gözden kaçırdım demekki orayı.
 

Technopat Haberler

Yeni konular

Geri
Yukarı