Unity 60 FPS'de performans düşmesi

Mucosoft

Megapat
Katılım
5 Mart 2014
Mesajlar
5.508
Makaleler
12
Çözümler
41
Unity'de FPS limitlemesine sahip bir sistem geliştirdim. 300 FPS yaptım diyelim. Akıcı oynanıyor. 60 FPS yapınca sık sık FPS drop oluyor. 55-60 FPS arasında değişiyor ama akıcı olsa da bazen kasma hissi veriyor yani anlık FPS drop yaşanıyor. Bu neden oluyor? Nasıl çözülür?
 
FPS limitlemesini nasıl yaptın? Fixeddeltatime değerin kaç?

Kodları nasıl yazdığında önemli, özellikle kamera takibi kodu varsa, Update ile mi takip ediyor lateupdate mi? Hareket kodların aynı şekilde ne zaman updateleniyor gibi bir sürü farklı değişken var akıcılık istiyorsan. FPS sadece ekrana gelen kare sayısı.
 
FPS limitlemesini nasıl yaptın? Fixeddeltatime değerin kaç?

Kodları nasıl yazdığında önemli, özellikle kamera takibi kodu varsa, Update ile mi takip ediyor lateupdate mi? Hareket kodların aynı şekilde ne zaman updateleniyor gibi bir sürü farklı değişken var akıcılık istiyorsan. FPS sadece ekrana gelen kare sayısı.
[CODE lang="csharp" title="Update"] Time_Tick++;
if (Time_Tick > 30)
{
float Current = 0;
Current = (int)(1f / Time.unscaledDeltaTime);
AvgFPS = (int)Current;
string TxtDebug = AvgFPS.ToString() + " FPS\n";
TxtDebug += "X -> "+ Player.transform.position.x +" Y -> "+ Player.transform.position.y +" Z -> " + Player.transform.position.z;
Txt_Debug.text = TxtDebug;
Time_Tick = 0;
}[/CODE]
Karakter sistemi aşağıdaki paket.
Bu da diğer kodlar.
C#:
    void Start()
    {
        QualitySettings.vSyncCount = 0;
        Txt_FPSLimit.text = "60";
        Sld_FPSLimit.minValue = 16;
        Sld_FPSLimit.maxValue = 360;
        Sld_FPSLimit.value = 60;
    }
    public void UpdateSliderFPS()
    {
        if (Sld_FPSLimit.value == 0)
        {
            Txt_FPSLimit.text = "0";
        }
        else
        {
            Txt_FPSLimit.text = Sld_FPSLimit.value.ToString("##");
            Application.targetFrameRate = (int) Sld_FPSLimit.value;
        }
    }
 

Geri
Yukarı