Unity farklı bir C # sürümü kullanıyor mu yoksa hepsi aynı mı? Normal C # 'dan farklı görünüyor, ancak orada bazı düzenli C # elemanları var.
Unity farklı bir C # sürümü kullanıyor mu yoksa hepsi aynı mı? Normal C # 'dan farklı görünüyor, ancak orada bazı düzenli C # elemanları var.
Yanıtlar:
Diğer cevaplarda belirtildiği gibi Unity 4.x , Mono 2.6 tabanlı Mono'nun değiştirilmiş bir versiyonunu kullanır
Mono 2.6'ya özgü bir uyumluluk listesini izleyememiş olsam da , çoğunlukla .Net 2.0 ile uyumludur.
Normal C # 'dan farklı görünüyor, ancak orada bazı düzenli C # elemanları var.
Sorunuzla ilgili yorumlardan birinde belirtildiği gibi, bunun nedeni büyük olasılıkla dilin kendisi yerine Unity'nin özel komut dosyası API'sıdır.
Örnek olarak, tipik bir Birlik projelerinde çok sayıda kod, MonoBehavior adlı bir sınıfın alt sınıflarında bulunur. Bunlar Unity Editor ortamında GameObjects üzerine bırakılan bileşenlerdir. Bu mimari birkaç şekilde tipik C # koduna (bana göre) farklı görünen C # koduna yol açar:
Pratik olarak, Unity'nin mevcut C # sürümünde özlediğim en büyük C # dili özelliği, zaman uyumsuzluk ve ilgili anahtar kelimeler ve işlevler için destek . Birlik'teki benzer bir kavram koroutindir . Bunlar ana iş parçacığında yürütülür, bu nedenle gerçek zaman uyumsuz değildir, ancak uzun çalışan kodun birden çok kareye bölünmesine izin verir. Daha düşük düzeyli çoklu kullanım desteklenmektedir.
async
C # da çok iş parçacıklı olduğu gibi gerçek asenkron değil - aynı zamanda ana iş parçacığında da çalışır. Kullanım perspektifi açısından, couteinler ve zaman uyumsuzluk arasındaki en büyük fark, kodun çalıştırıldığı zamandır.
Unity 4 , C # dili de dahil olmak üzere .NET çerçevesinin tam bir uygulaması olan Mono 2.6'yı kullanır .
Nasıl farklı göründüğünden emin değilim, ancak Unity'nin aynı Mono çalışma zamanının üstünde çalışan birkaç dili desteklediğini unutmayın. C # 'ı UnityScript ile karıştırmanız mümkün mü ?
Birlik normal C # kullanır.
Daha sonra, Unity'de C # yazdığınızda, kitaplıklarının çoğunu kullanacaksınız, ancak bildiğim kadarıyla, City'de mümkün olan her şey aşağıda listelenen farklılıklar dışında Unity'de mümkündür:
Net'in Windows Forms ve ASP ile ilgili daha spesifik alanları Unity aracılığıyla sınırsızdır.
Visual Studio'yu düzenleme ve derleme zamanı hataları için kullanabilirsiniz, ancak Unity IDE'de derlemeniz ve çalıştırmanız gerekir.
Unity, .Net'in açık kaynaklı bir uygulaması olan Mono'yu kullanır, bu da küçük farklılıklar olduğu anlamına gelir.
Unity tarafından kullanılan C # Sürümü'nün "normal" C # 'dan farklı olup olmadığı sorusu diğer gönderiler tarafından cevaplanmıştır. Açıkça Unity bazı (daha yüksek Visual Studio 2010 yani C # 4.0 ve) iş yerinde C # ı kullanımını karşılaştırırken ben fark sadece küçük bir fark paylaşacak böyle düzenli bir sürümden farklı olabilir elemanları ve C #, soran olduğundan hangi işlev tanımlarındaki parametreler için varsayılan değerleri kullanamıyorum. C # 'ın daha yeni bir sürümünü kullanmak için projenizi daha dikkatli bir şekilde ayarlamanız gerekir. Daha fazla açıklama için bu bağlantıya bakın .
Düzenleme: Bu cevabı bildiğim kadarıyla bu kadar çok insanın başına gelen bir yanlış anlama olduğunu bırakıyorum.