Yanıtlar:
FixedUpdate
Update
ayarlarınıza bağlı olarak daha hızlı veya daha yavaş çalışabilir . Bu, yüke (ne kadar hızlı Update
çalıştığına) ve ayarladığınız hıza FixedUpdate
(Düzenle-> Proje Ayarları-> Zaman bölümünde bulunur) bağlıdır. İdeal olarak, Update
çerçeve başına bir kez çalıştırıldığından, girişi yakalamak istediğiniz yer burasıdır. Eğer FixedUpdate
yöntemdeki girdiye göre hareket etmeniz gerekiyorsa (fizik gövdelerini kontrol etmek gibi), bayrakları yerleştirin ve Update
ardından bunları ele alın FixedUpdate
:
bool leftMouseDown = false;
void Update()
{
if(Input.GetMouseButtonDown(0))
leftMouseDown = true;
}
void FixedUpdate()
{
if(leftMouseDown )
{
//update physics bodies with input
leftMouseDown = false;
}
}
Fiziği FixedUpdate
yöntemden kontrol etmek hala iyi bir fikirdir , çünkü fiziğin sık sık güncellenmesi gerekmemektedir ve sabit bir güncellemedeki fiziğin (güncelleme ) değişken bir güncellemedeki fiziğe göre tahmin edilmesi ( determinizm ) çok daha kolaydır .
FixedUpdate
. Bu "neyin doğru" olduğunu gerçekten anlamak için oyun testine ihtiyaç duyan şeylerden biri.
Her birinin ne yaptığını anlamalısınız. Update()
her iki durumda da mümkün olduğunca sık çağrılır (emin değil, belki de kapatılabilir). FixedUpdate()
her sabit zamanda çağrılır (dolayısıyla "sabit").
Giriş Update()
bu kadar basit olur (çünkü fark ettiğiniz gibi FixedUpdate()
input olayını yakalayamayabilir). Ancak oyun mantığı bunlardan birine girebilir. Fiziğin deterministik olması gerekir ve bu yüzden içinde olması gerekir FixedUpdate()
. Başka şeyler yapmak zorunda değilsiniz. Kullanıma bağlı olarak hangi işlevin uygun olduğuna karar vermelisiniz.
Bununla birlikte, bazı uygulamaların tüm oyun mantık güncellemelerine FixedUpdate()
(hatta dışında Unity
) sahip olduğunu söylemeye değer - buna "sabit adım oyun döngüsü" denir. Tüm güncelleme kodunun sabit bir adım işlevine sahip olması, determinizm sağlar ve uygulamanızın her seferinde (ve her cihazda) aynı şekilde davranma olasılığını artırır. Ayrıca tekrarlar gibi bazı süslü özelliklere de izin verir.