Sahnede zaman göstermek için kullandığım ayrı bir zaman çizelgesine sahibim. Saat ve dakika ve saniye değişkeni içerir. Belirli bir işi yapmak istiyorum, ör. Belirli bir zamanda kod yürütme yapmak istiyorum ve şu anda böyle bir şey yapıyorum. Güncellemede Bir animasyonu çalıştırmak için sürekli olarak zaman değişimini kontrol eden bir fonksiyon çalıştırıyorum.'Güncelle' kullanmaktan kaçının mı?
void Update()
{
checkTrainArriveTime();
}
void checkTrainArriveTime()
{
if (timeManager.GetComponent<Scale2>().hour == trainArriveTimeHour && timeManager.GetComponent<Scale2>().min == trainArriveTimeMin
&& isTrainArriveConditionExecute)
{
isTrainArriveConditionExecute = false;
PlayAnimationClip("Start");
}
else if (timeManager.GetComponent<Scale2>().min != trainArriveTimeMin)
{
isTrainArriveConditionExecute = true;
}
}
Zamanla eşleşeceği zaman bu işlev animasyonu oynatır. Şimdi 50 farklı oyun Nesnesine bağlı 50 komut dosyası var. iyi çalışıyor ama Güncelleme Etkinliğini kullanmak kesinlikle doğru bir yol değil. Kodumda, güncellemede her bir karede ve ekstra yükünde zamanı kontrol etmek gereklidir. Bu İşi yapmanın etkili bir yolu var mı?
Her karenin zamanını kontrol etmek gerekiyorsa, Güncellemeyi kullanmanız gerekir. Daha iyi performans için, gerçek güncellemede GetComponent <>() kullanmamanızı tavsiye ederim. Scale2'ye referans almak için sadece bir kez kullanın ve bu referansı kullanın. –
Unity'nin UnityEvent'i kullanmaya başlamanız çok muhtemel, ki bu son derece basit ve Unity'nin en iyi şeylerinden biri: http://stackoverflow.com/a/36249404/294884 – Fattie
@JoeBlow Tavsiyeleriniz için teşekkürler ama benim duraklama aynı sorun. Ek olarak, zamanlayıcı hızı, kullanıcı tarafından GUI kullanılarak hızlandırılabilir. Bu yüzden benim için de geçerli değil. –