2015-03-02 20 views
8

Oyunumu iOS için en iyi duruma getirmek için çalışıyorum ve Unity3D'deki kalite ayarlarıyla tamamen tuhaf bir sorun yaşadım! kısa versiyon olursa olsun seçeneklerden içimde set olmasıdırUnity 3D Kalite Ayarları Arasında Gizli Fark?

Fantastik, Basit İyi, güzel,:

Edit -> Project Settings -> Quality 

dört ayar şunlardır:

ben aracılığı oyunda 4 kalite ayarları kurulum kalite ayarları paneli, Basit her zaman İyi'den daha iyi performans gösterecektir.

Örneğin, tüm oluşturma seçenekleri için aynı ayarlara sahip olmak için Simple and Good (Basit ve İyi) ayarını yaparsam, her şeyi en aza indirir (gölgeleri kapatır, antialias yok, 1/8 Doku vb.) Ve oyunu iPad ile başlayarak test edebilirsiniz. farklı bir varsayılan kalite seçenekleri: Ben 1/4 Dokular kullanın ve 1/8 Doku İyi bırakmak Basit değiştirirseniz

Simple - ~26FPS 
Good - ~6FPS 

, hala hemen hemen aynı gerçekleştirir:

Simple - ~24FPS 
Good - ~6FPS 

Ben açıkça görebiliyorum dokular, 1/4 Basit modda daha iyi/daha ayrıntılı, ama yine de çalışır 1/8 boyutta dokular kullanan Good moddan neredeyse 20FPS daha hızlı.

İyi modda çalışırken CPU, Basit Mod'da (aynı kalite ayarlarıyla) bulunmayan sabit bir "Tepegöz" yükünden etkilenen Unity iOS profilleyicinin eklenmesini görebiliyorum. Bu yüzden, Simple to Good'dan çıktığımda bir şey açıkça değişiyor, ancak kalite ayarları menüsünden değiştirebileceğim hiçbir şey görünmüyor.

unity manual page Okumadan, farklı kalite ayarlarının yalnızca yer tutucuları ekleyebileceğiniz/kaldırılabildiği izlenimi alıyorum. Ama deneyimlerimden, Simple Vs Good (veya diğer) seçenekler arasında başladığımda değişecek başka bir şey var gibi görünüyor.

Basit/İyi olarak oyunu başlatmayı denedim ve aynı zamanda kodu manuel olarak değiştirmeyi (QualitySettings.SetQualityLevel aracılığıyla C# kullanarak) ve aynı performansı elde etmeyi denedim.

Bir şey anahtarını kaçırıyormuş gibi hissediyorum ama bunu anlayamıyorum.

+1

Bu büyük bir soru, bazı faydalı linkler Object pooling video tutorial olduğunu! Yine de UnityAnswers'da daha iyi şansınız olabilir. Bu site Birliğe adanmıştır, bu yüzden orada daha bilgili kişiler bulabilirsiniz. – SirBraneDamuj

+0

Öneriniz için teşekkürler - Bunu, Unity Answers'da yayınladım, ancak herhangi bir cevap almadım! StackOverflow'da birisinin bana yardım etmesine yardımcı olabileceğini umuyordum! – Jokode

cevap

2

Kalite düzeyleri, kalite düzeylerinde bulunan ve bazı ek hesaplamalara ihtiyaç duyduğunuz özellikleri kullandığınızda fark yaratabilir. Ancak bu özellikleri kullanmadığınız zaman kalite seviyeleri arasında fark yoktur. bazı ipuçları

  1. Yap doku atlasing beraberlik Güncelleme işlevlerinde
  2. geliştirin hesaplamaları çağırır ve önbellek Güncelleme işlevi tarafından kullanılan dönüşümleri azaltmak için orada geliştirmek istediğiniz Eğer FPS.
  3. bazı durumlarda
  4. her karede nesneleri yok etme Singleton deseni kullanabilirsiniz, her karede bileşenleri arama yapmayın. Nesne havuzu oluştur.
  5. parçacık Emisyonu geliştirin ve gölgelendiricileri geliştirin yapabilirsiniz
  6. gibi daha az tesis haline getirmektedir. Mobil kullanımlı mobil gölgelendiriciler kullanırsanız. Örneğin, Diffüz shader'ı Mobile/Diffuse'a değiştirin.

İşte Singleton pattern Unity3d c#

+0

Önerileriniz için teşekkür ederim - Oyunu optimize ederken bunların hepsinden de emin olacağım. Ancak, korkarım ki bu, kalite ayarları arasında kapağın altında bir fark olup olmadığına dair orijinal sorumu yanıtlamıyor. Benim durumumda tüm ayarlar/özellikler tüm kalite ayarları için aynıdır - ancak en düşük (FASTEST) seviyesinden başka bir kalite seviyesine geçtiğimde, performansta büyük düşüş görüyorum. Seviyemi değiştirdiğimde başka özellikler etkinleştirildiyse mantıklı olurdu - ama tüm ayarlar aynı! – Jokode