Muhtemelen en önemli fark, Birliğin Random.Range
kullanımının statik olmaktan biraz daha kolay olmasıdır. System.Random
Bununla birlikte, C # temel sınıf kütüphanesi size daha fazla kontrol ve izolasyon sunar.
Aynı zamanda farklı başlık altı uygulamaları da kullanmaları mümkündür (her ne kadar benim tahminim Unity'nin Random
sadece sistem açısından uygulanmış olmasına rağmen Random
), ancak bu muhtemelen kayda değer bir endişe değildir. Temel olarak her ikisi de muhtemelen aynı tür rasgele sayı üretecidir: bazı tohumlar tarafından tanımlanan bir dizinin yinelenmesine dayanan sahte rastgele bir üreteci).
Kontrol konusu daha önemlidir, çünkü bazı bağlamlarda farklı şeyler için farklı rasgele akışlar kullanmak isteyebilirsiniz. Örneğin, kilit adımlı bir ağ iletişimi ağ bağlamında, oyundaki tüm oyuncular arasında rastgele oynanışı etkileyen olaylar oluşturmak için kullanılan tohumu düzeltmek isteyebilirsiniz, ancak tamamen için kullanılan rasgele sayıların akışını çok fazla önemsemezsiniz. görsel olaylar ve bu akışın daha geleneksel bir şekilde ekilmesine izin verebilir (örneğin oyun başlangıcında sistemin çalışma süresiyle).
Benzer şekilde, çoklu ipliklerde rastgele sayılar üretecekseniz, yarış koşullarını önlemek için her iplik için farklı rastgele nesneler kullanmak isteyebilirsiniz. Oyun mantığınız birçok iş parçacığı üzerinde çalışıyorsa ve örneğin bir oyun yeniden oynatma sisteminiz varsa, bu durum ortaya çıkabilir.
Sonunda, genel olarak birini veya diğerini kullanmak mutlaka daha iyi değil , aksine artılar ve eksiler var. Sayı dizisini gerçekleşebilecek diğer potansiyel rastgele dizilerden yalıtmanız gerektiğinde veya dizinin tohumu üzerinde yerel olarak denetime ihtiyacınız olduğunda, bunun bir örneğini kullanın System.Random
. Bir fırlatma kullanımı ya da etkileyici olmayan başka bir senaryo için sadece hızlı ve kirli bir rastgele değere ihtiyacınız varsa, Unity'nin sadeleştirilmiş Random
olması muhtemeldir.