Hey merhaba ziyaretçi bize destek olmak ister misin ? Hemen Kayıt Ol Seni hiç sıkmadan kayıt edeceğiz endişelenmek bize destek olduğun için teşekkürler.



  • Toplam: 0 Oy - Ortalama: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Timer sorunum
#1
Merhaba  arkadaşlar 

      Bir oyun tasarlıyorum  bu oyunun içinde vip butonu  hazırladım  bu butona tıklandığında  bir bool  değerini  true  yapacak  ve  true olan booll değişkenin altında  bir sayaç oluşturdum   bu sayaç sıfır olana kadar  player vip olanaklarından faydalanacak  buraya kadar her şey çok güzel :Smile ama  sayaç her sahnede  çalışmıyor  çeşitli yöntemler denedim  ama kimisinde  diğer sahnelere geçince başlat başladı kimisinde maxtime  değerine eşitledi  kimisinde hiç çalışmadı vs.            Bu konu ile ilgili nasıl bir yöntem izlemem  gerekiyor bilgisi olan   arkaşlar yardım ederse sevinirim
  Cevapla
#2
Merhaba, öncelikle sayacın bulunduğu scripti her sahneye eklediğinizden emin olun. O sahnede script bir nesneye eklenmediyse çalışmayacaktır. Daha sonra Update fonksiyonunda sayacı arttıtdığınız kısımda Debug.Log(sayac); kodu ile sayacın durumunu takip edin, bir aksaklık olduğunu bu şekilde anlayabilirsiniz. Kodunuzu paylaşırsanız belki daha net bir cevap verebiliriz.
  Cevapla
#3
(29-10-2020, Saat: 17:29)mtat0640 Nickli Kullanıcıdan Alıntı: Linkleri görüntüleyebilmek için Kayıt ol manız veya Giriş yapmanız gerekiyor.Anlayışınız için teşekkürler.!Merhaba, öncelikle sayacın bulunduğu scripti her sahneye eklediğinizden emin olun. O sahnede script bir nesneye eklenmediyse çalışmayacaktır. Daha sonra Update fonksiyonunda sayacı arttıtdığınız kısımda Debug.Log(sayac); kodu ile sayacın durumunu takip edin, bir aksaklık olduğunu bu şekilde anlayabilirsiniz. Kodunuzu paylaşırsanız belki daha net bir cevap verebiliriz.

Söyledikleriniz  aynen  yapıldı  ama sayacın başlatıldığı sceneden  farklı bir  scene  geçiş yapıldığında  sayaç çalışmıyor . Kodlama  şu şekilde 

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

public class Vip : MonoBehaviour
{
   public float Sayaç;
    public float vip_sayac;
    public bool vip_aktif =false ;
    public int  a =0;
    bool vip_sayac_kont;
   // public Text Vip_Sayac_text;
    // Start is called before the first frame update
    void Start()
    {
        
    }

    // Update is called once per frame
    void Update()
    {
       
        if (vip_aktif == true)
        {
            vip_sayac -= Time.deltaTime;
           
            a = 1;
            PlayerPrefs.SetInt("vipİD", a);
            Debug.Log("vip sayac" + vip_sayac);
        }

        
        
        if (vip_sayac <= 0)
        {
            vip_aktif = false;
            
            a = 0;
            PlayerPrefs.SetInt("vipİD ", a);
            Debug.Log("vip bitti");
            
        }
    }
    public void Vip_button()
    {

        vip_sayac = 22;
        vip_aktif = true;
        vip_sayac_kont = true;
        

    }
}
  Cevapla
#4
Kesin olmamakla birlikte bir önerim var dontdestroyonload un içine atsan belki çalışır.
  Cevapla
#5
Onuda denedim Smile
  Cevapla
#6
Bence sorunu bir datetime gibi bir modul varsa onunla hallet. Şöyle yapılabilir bastığı andaki tarih saat bilgusini al sonra biteceği zamanı hesapla ve kaydet. Sonra zaman, kaydettigin zamandan buyuk olursa vipligi iptal ettirirsin eğer yapamassan tekrar geri bildir
  Cevapla
#7
zaman bilgisini nasıl  alabilirim
  Cevapla
#8
Sayacınızı Vip_button fonksiyonu tetikliyor. İlgili butonun onclick ine bu kodu eklemeyi unutmuş olabilirsiniz. Onun haricinde kodunuz düzgün görünüyor, çalışmalı.

Sayaç bir sahnede çalışır durumdayken başka bir sahneye geçilirse sayaç önceki sahnede kaldığı yerden çalışmaya devam etsin istiyorsanız durum değişir. O zaman vip_sayac değerini her eksilttiğinizde playerprefs ile kaydetmelisiniz ve yeni sahneye geçildiğinde start fonksiyonunda vip_sayac değerini playerprefs ten çekip güncellemelisiniz ve vip_sayac >0 ise vip_aktif değerini true yapmalısınız. Böylece sahnedeğişsede sayaç kaldığı yerden çalışmaya devam eder.
  Cevapla
#9
Teşekkür ederim  bunu deneyeceğim
  Cevapla


Hızlı Menü:


Konuyu Okuyanlar: 1 Ziyaretçi