Birlik komut dosyası arka uç IL2CPP ve Mono2x arasındaki fark


15

IL2CPP , bazı platformlar için projeler oluştururken Mono'ya alternatif olarak kullanabileceğiniz, Birlik tarafından geliştirilmiş bir betik arka uçtur . Not - IL2CPP yalnızca aşağıdaki platformlar için oluştururken kullanılabilir:

  • Android AppleTV, iOS *, Nintendo 3DS, Nintendo Anahtarı, Playstation 4 Playstation Vita, WebGL *, Windows Mağazası, Xbox One

Android dağıtımına geçiş yapan bir projem var (birlik 5.2). Ben destekli benim komut dosyası geçmek için çalıştı Mono2xetmek IL2CPPve onun o bana gösterilen

Andriod'daki IL2CPP deneysel ve desteklenmiyor

Yani, basit sorum şu ki, hala desteklenmiyorsa, seçenek neden dahil edildi, IL2CPP ve Mono2x arasındaki temel fark nedir. Neden IL2CPP komut dosyası arka ucuna geçtim ? onun nelerdir artıları ve eksileri ?

Birlik 5.5.2'de Windows platform dağıtımında IL2CPP seçeneği bulunmadığını da kontrol ettim.

Yanıtlar:


14

Bilgiler Unity 2018.2 sürümüne dayanmaktadır:

Aktaran IL2CPP üzerinde Birlik kılavuzu :

IL2CPP ( C ++ için Orta Dil ), çeşitli platformlar için projeler oluştururken Mono'ya alternatif olarak kullanabileceğiniz, Birlik tarafından geliştirilmiş bir komut dosyası arka ucudur . IL2CPP (Zamanından önce (AOT) derleyici) , yönetilen kodda Mono komut dosyası arka ucuyla aynı şekilde hata ayıklamayı destekler.

IL2CPP kullanarak bir proje oluştururken Unity, seçtiğiniz platform için yerel bir ikili dosya (örneğin, .exe, apk, .xap) oluşturmadan önce komut dosyalarını ve derlemelerdeki IL kodunu C ++ 'a dönüştürür. IL2CPP kullanımlarından bazıları Unity projelerinizin performansını, güvenliğini ve platform uyumluluğunu arttırmayı içerir.

IL2CPP ve Mono ile ilgili Unity eğitiminden alıntı :

Her Komut Dosyası Arka Planında, durumunuz için doğru seçim olan kararınızı etkilemesi gereken avantajlar ve dezavantajlar vardır:

IL2CPP:

  • Kod üretimi Mono ile karşılaştırıldığında büyük ölçüde geliştirildi.
  • Komut dosyası kodu C ++ ile yukarıdan aşağıya hata ayıklama mümkündür.
  • Kod boyutunu azaltmak için Motor kodu soymayı etkinleştirebilirsiniz.
  • Yapım süreleri Mono ile olduğundan daha uzundur.
  • Yalnızca Zamanın Ötesinde (AOT) derlemeyi destekler.

Mono:

  • IL2CPP'den daha hızlı oluşturma süreleri.
  • Just In Time derlemesi (JIT) sayesinde daha fazla yönetilen kütüphaneyi destekler.
  • Çalışma zamanı kod yürütülmesini destekler.
  • Yönetilen derlemeler (mono veya .net tarafından üretilen .dll dosyaları) gönderilmelidir.

Önemli noktalar:

  • Android Player Ayarlarındaki varsayılan Hedef Mimari, IL2CPP ve Mono Komut Dosyası Arka Uçlu armv7 ve x86'dır.
  • Mono, UWP veya iOS 11 ve üstü sürümlerde desteklenmez. İOS Player Ayarlarındaki varsayılan Mimari, IL2CPP Komut Dosyası Arka Uçlu armv7 ve arm64'tür.

  • UWP derlemesi yalnızca IL2CPP ve .NET'i destekler.


1
Bence cevabınızın referansları eksik. IL2CPP / Mono listesinin Unity'nin IL2CPP ve Mono öğretici sayfasıyla aynı metin olduğunu ve ilk 2 paragrafın Unity'nin IL2CPP manuel sayfasıyla aynı metne sahip olduğunu görüyorum . Yanıtınızı referansları içerecek şekilde düzenleyin, daha fazla bilgi için yardım merkezine bakın .
sonny

3

IL2CPP, bazı platformlar için projeler oluştururken Mono'ya alternatif olarak kullanabileceğiniz, Birlik tarafından geliştirilmiş bir betik arka uçtur. IL2CPP kullanarak bir proje oluşturmayı seçtiğinizde, Unity, yerel bir ikili dosya (.exe, apk, .xap, örnek) seçin. IL2CPP kullanımlarından bazıları Unity projelerinizin performansını, güvenliğini ve platform uyumluluğunu arttırmayı içerir.

Kaynak

IL2CPP, mono'dan daha hızlı olduğu düşünülen eşdeğer bir * yürütme platformudur. Bu bağlamda "deneysel" , önceki cümlede "sözde" kelimesine güçlü bir vurgu yapmaktadır .

Deneysel özellikler aynı nedenden ötürü beta yazılımı herkese açık olarak yayınlanmaktadır: Yazılım kullanmak için yeterince iyidir ve geliştiriciler, geniş bir kullanıcı yelpazesinden hata raporları ve diğer geri bildirimler ister, böylece yazılımın hazır olduğu noktaya gelebilirler. gerçek sürüm.


* IL2CPP, yalnızca doğrudan çağrılmayan ve dolayısıyla derlemeden çıkarılan sınıflarda yansıma, serileştirme veya jenerikler kullanıldığında gerçekleşecek olan, yalnızca yansıma yoluyla kullanılan kod için çalışmaz. Aynı kısıtlama şu anda Zaman Öncesi derleme kısıtlamalarını kullanan platformlarda Mono için de geçerlidir.


Yani hala olgun değil henüz 5.5 5.5 hakkında hiçbir deneyim kullanıyorum. veya 5.6. Ayrıca il2cpp de kayması için artıları nelerdir?
Muhammed Faizan Han

Bazı platformlar için olgunlaşır. En azından IOS için Unity 5'ten bu yana var. Android IL2CPP'nin bile son sürümlerde deneysel olarak işaretlenmediğini düşünüyorum. IL2CPP kullanmaya başlayana kadar Unity 4'ten 5'e atlamanın androidde daha yavaş olduğunu gördüm. Test cihazlarımda fark edilir derecede daha hızlı.
Tartle Sihirbazı

1
IL2CPP, Zaman Öncesi makine kodunu derlediğinden , jeneriklerin yansıması ve kullanımı ile ilgili birkaç ek kısıtlamaya sahiptir . Mono'nun Tam Zamanında derleyicisi, gerekli kodu anında oluşturmak ve oluşturmak için eldeki bilgilere sahiptir, ancak AoT için gerekli tüm kodun derleme zamanında tespit edilmesi kolay olmalıdır.
DMGregory
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.