Birliğin en ciddi sınırlaması nedir? [kapalı]


30

Unity vs. UDK vs. ID hakkındaki bu sıcak soruyu okuduktan sonra bilmek isterim: Unity'in defalarca en çok zarar veren sınırlaması nedir?

Bu soruyu öznelleştirmemek için tekrar, Birliğin en çok suçlanan suçlularından bahsediyorum. Bu, bir Birlik kullanıcısı olarak, kullanmaya başlamadan önce birisinin size söylemesini istediğiniz bir şeydir.

Unity'nin sürüm kontrolü ile iyi başa çıkmadığını, çok fazla ikili dosya oluşturduğundan (değiştirilemez) birinden duydum. Bu, bana göre, yalnız çalıştığım için gerçekten sakatlanmıyor.

Düşünceler?


1
DV ama yorum yok ve 2.5yo bir soru üzerine? Neden?
ashes999

Muhtemelen rastgele üzerine atılıyor. Bu soru açıkça anlaşılmaya dayanıyor. "Bu soruyu öznel olmayan tutmak için" demek, öznel değildir; çünkü en sinir bozucu en çok suçlu bulduğunuz üst suçlu, bir sonraki kullanıcının üst suçlu ile aynı olmayacaktır. Bu tür listelerin hiçbir değeri yoktur ve yalnızca mitleri zorlamaya yardımcı olur; örneğin, eğer herkes "X bir şeydir" dese de , X bir hafta sonra bir Birlik güncellemesinde sabit kalsa da , en üst sıradaki cevaplar muhtemelen "X yıllar sonra bile listelerinin tepesinde “BÜYÜK bir problem”.
LearnCocos2D

Artı, hangi cevap doğru cevap olarak kabul edilebilir ? Düşünürseniz, cevapların hiçbiri cevap olarak kabul edilmemelidir , çünkü bu soruyu cevaplamanın doğru bir yolu yoktur. Muhtemelen öznel bir sorunun 1 numaralı göstergesi budur.
LearnCocos2D

Yanıtlar:


33

Birlik adamlarının, toplumlarının karşı karşıya kaldığı temel nitelikleri duymak konusunda oldukça iyi olduklarını ve nihayetinde işleri iyileştirme vaat ettiklerini söyleyeyim. Ayrıca sadece belirli platformlarda ortaya çıkan ya da üzerinde çalıştığınız oyunun kişisel tercihleri ​​ya da özel sorunları olan birçok konu var.

Söyleniyor ki:

1) Kötü kaynak kontrol entegrasyonu ve büyük takım araçları. Bahsettiğiniz gibi, bir çok değişken olmayan ikili dosya. Editör, sahne dosyaları için salt okunur bayrağını dikkate almaz. Giriş yapmanız gereken gerçek dosyalar hemen belli değil. Bunun bir kısmı 3.5'te SVN ve P4 entegrasyonu ile düzeltiliyor. Ayrıca metin tabanlı sahne formatları vaat ediyor. GÜNCELLEME: Metin tabanlı sahne formatı artık Unity'nin Pro sürümünde mevcuttur. Buraya bakınız .

2) Yavaş, programlayıcı merkezli UI araçları. Her widget, mobil platformlarda çok fazla yükü olan kendi arama çağrısıdır. Animasyonlu paneller ve UI'yi kendiniz yuvarlamadan iyi hissetmenizi sağlayan diğer fantezi şeyler gibi şeyler kavramı yoktur. Yol haritasında yeni bir UI sistemi vaadi var (3.6?). Bazı üçüncü parti araçlar var ama harika değiller.

3) Gerçekten ilkel parçacık düzenleme. Yine de 3.5'te yeni bir eğri tabanlı sistem vaat ediyorlar. GÜNCELLEME: Shuriken adı verilen bu eğri tabanlı sistem şimdi mevcuttur. Buraya bakınız .

4) Prefabrik yuva yapamazsınız. Küçük bir sorun, ancak prefabrik sistemle ve size sağladığı tüm güçle çalışmaya alışkın olduğunuzda sinir bozucu olabilir. Bu söz verildi, ancak kesin bir tarih yok. GÜNCELLEME: Artık prefabrik yuvalayabilirsiniz.

5) Hava sınırının altında bir iOS oyunu elde etmek imkansız. Tek başına ikili, en iyi senaryoda 8 megs gibidir. Bu kolayca tamir edilebilir bir şey değil.

6) Boş başvuru istisnaları, JIT derlenmiş koduna izin vermeyen çökme platformları. Bağımsız veya web sürümlerinde, NRE'ler yakalanır. Hala yakalanmamış bir istisna, ancak en azından uygulama çalışmaya devam etmeye çalışacak. İOS'ta, cihaz çöküyor. Bunu hata ayıklama moduna geçirebilir ve bazı istisna türleri yakalayabilirsiniz, ancak performans düşüktür.

7) Çok platformlu bir oyun üzerinde çalışırken, yapı hedeflerini değiştirdiğinizde her şeyi yeniden içe aktarmanız gerekir ve bu uzun zaman alır. Bu konuda aslında sadece projenin birden çok kopyası disk üzerinde kopyalayarak çalıştım. Görünüşe göre 3.5'te ithal edilmiş bir varlık sunucusu var.


1
@iamcreasy, Kendine uygun, DUDE. "Dropbox bir depolama servisi olarak çalışsa da, odağı senkronizasyon ve paylaşım üzerine odaklanıyor. Revizyon geçmişini destekliyor, böylece Dropbox klasöründen silinen dosyalar senkronize edilen bilgisayarlardan herhangi birinden kurtarılabilir. [33] [34] Dropbox'ın sürüm kontrolü de yardımcı oluyor Kullanıcılar, üzerinde çalışmakta oldukları bir dosyanın geçmişini bilir, birden fazla kişinin önceki formunu kaybetme zorluğu olmadan dosyaları düzenlemesini ve yeniden göndermesini sağlar. [35] Sürüm geçmişi 30 günle sınırlıdır. "Pack-Rat" adı verilen sınırsız sürüm geçmişi var. " -Wikipedia
Mühendis

6
Belki de haksızlık yapıyorum ama NullReferenceExceptions yazılımının programcı hatası olduğunu düşünüyorum; gelen parametreleri kontrol ediyor olmalısın. Biz kod analizi çeşit olsaydı Tabii, zorunlu kılmak amacıyla daha kolay olurdu eklenti MonoDevelop için size ... VisualStudio olsun gibi
chrish

1
@ ashes999 Yeni bir teknolojiyle her zaman öğrenmek zorunda kalacak bir terminoloji vardır. Kelimeler bizim kavramlarımızda tutamaktır. Aynısı temel Flash için de geçerli. Birliğin kullanılabilirliği konusundaki yutturmaca, hiçbir şey için değil. Profesyonel olmayan geliştiricilerin girişindeki engelleri azaltır ve profesyonellerin çok daha azıyla çok daha fazlasını yapmalarını sağlar. Sözde kısıtlamalar konusunda çok fazla endişelenmeyin. Şansların çoğu, sizin için bir engel bile olmayabilir. Endişelendiğim tek şey boş gösterici istisnaları ve bunlar hata ayıklanabilir.
Mühendis

3
Tedrad'ın cevabı Unity 4.1.x'te şu an nasıl devam ediyor? Kimse biliyor mu?
Sil

1
'Şimdi prefabrik yuva yapabilirsin' derken neyi kastediyorsunuz? Belki de soru en son düzenlendiğinden bu işlevsellik kaldırılmıştır? Yoksa bu eklentiyi mi kastediyorsunuz ?
NauticalMile,

6

Ben ve bir arkadaşım, daha büyük bir proje için Birlik değerlendirdiğinde, en büyük sorunlardan birinin, yazılım kaplamasıyla ilgili performans olduğunu gördük. Eğer doğru bir şekilde hatırlıyorsam, her biri yaklaşık 1000 tane olan 10 canlandırma nesnesi vardı ve orta seviye bir bilgisayar kullanırken 20 fps aldım ... Çok iyi değil ...


Bu ne kadar önceydi? Hemen hemen her sürümde, gelişmiş cilt performansı hakkında sürüm notlarında bir şeyler var gibi görünüyor. İOS karşısında GPU kaplama yapmaktan FPU kullanmaya geçtiler, çünkü çok daha hızlıydı.
Tetrad

Bir ay önceydi ...
Cpt.

6

Benim bir numaralı sorunu olduğunu sürüm kontrolü yeniden. Çözüm? Sadece Unity projeleri için DropBox kullanın. Doğru şekilde ayarlamanız koşuluyla (yani "PackRat" hizmeti için ödeme yaparsanız), revizyon geçmişini korur. Ayrıca geleneksel sürüm kontrolü hakkında bilgi sahibi olmak istemeyen tasarımcılarla işbirliği yapmak çok daha kolaydır, DropBox onlara şeffaf bir çözüm sunar. Dezavantajı dallanma / birleşme gerçekten oldukları gibi desteklenmiyor. git, SVN.

Şüphe edenler için ...

Dropbox bir depolama servisi olarak işlev görürken, odak noktası senkronizasyon ve paylaşımdır. Revizyon geçmişini destekler, böylece Dropbox klasöründen silinen dosyalar senkronize edilen bilgisayarlardan herhangi birinden kurtarılabilir. [33] [34] Dropbox'ın sürüm kontrolü, kullanıcıların üzerinde çalıştığı bir dosyanın geçmişini bilmelerine yardımcı olarak birden fazla kişinin önceki formunu kaybetme zorunluluğu olmadan dosyaları düzenlemesini ve yeniden göndermesini sağlar. [35] Sürüm geçmişi 30 günle sınırlıdır. "Pack-Rat" adı verilen sınırsız sürüm geçmişi için ücretli bir seçenek mevcuttur.

Unity forumlarından sağlam bir referans için buraya bakın .

Bunun dışında, Birlik hakkında sinir bozucu bulduğum tek şey, C'nin (main ()) veya AS3'ün (belge sınıfı) yaptığı gibi bir uygulama giriş noktasına sahip olmaması. Ancak uygulamanızı boş bir GameObject ürününe yerleştirdiniz, çok da değil. Kod akışı bu doğal yapı etrafında da biraz farklıdır, ancak yine de bununla başa çıkılması zor bir şey değildir.

Lisans gelince, çoğu insan fark etmiyor (ve özellikle profesyonel bir lisans için para ödeyemeyen küçük indie operasyonlarına ve hobilere atıfta bulunuyorum). Hiç temel / ücretsiz sürümü ile istiyorum. Gerçekten, çok büyük bir engel değil, Birlik ekibi çok cömert davrandılar.


1
Dropbox, evet. Ama + 1 - bu aslında benim peşimde olan şey.
ashes999

Hehe, herhangi bir geliştiricinin aynı hissedeceğini düşünüyorum. Ama hey, işi yaparsa ...
Mühendis

2
Git'i Unity ile birlikte kullanıyoruz. .Gitignore dosyalarını ayarlamak çok az zaman alıyor ancak çalışıyor ve VCS özelliklerinin tamamını veriyor.
Kylotan

2
Unity ile Mercurial (BitBucket ile) kullanıyoruz ve .hgignore dosyalarını düzgün bir şekilde yapılandırdığınızda harika çalışıyoruz.
JD

@JD (& Kylotan) - Sahne dosyalarının birleştirilememesiyle nasıl başa çıktınız?
UpTheCreek

6

Beni günlük olarak rahatsız eden başka bir büyük sınırlama olduğunu düşündüm, bu yüzden bunu ayrı ayrı göndereceğim.

Unity3D, komut dosyalarınızı MonoDevelop'ta (özellikle de dağıtdıkları MonoDevelop'un eski bir sürümü) düzenlemenizi istiyor. Bu sürümün "Dosyalarda Bul" işlevselliği bozulmuştur, çünkü kullanımı genellikle IDE'nin askıda kalmasına neden olarak yararsızdır.

Bu, herhangi bir motorda büyük bir tahriş olur, ancak Unity'ye büyük bir tahriş olur çünkü çeşitli oyun nesnelerine etki eden çok merkezi olmayan bir ayrı bileşen sistemini teşvik eder. Ancak, çeşitli bileşenleri araştıramazsanız, hangi bileşenlerin hangi özelliklere eriştiğini nasıl öğrenebilirsiniz?

EDIT: Bu cevap 2011 yılında gönderildi: Dosyalarda Bul hata bir süre önce, neyse ki düzeltildi. Yorum yapanların söylediği gibi, kodunuzu diğer düzenleyicilerde düzenleyebilirsiniz (hata ayıklayıcıda çalıştırılmak istiyorsanız, seçiminiz sınırlı olsa da).


1
Buna değer, Birlik ile istediğiniz herhangi bir IDE kullanabilirsiniz (Visual Studio Pro kullanıyorum). Ancak hata ayıklayıcıyı kullanmak istiyorsanız, MonoDevelop ile sınırlısınız.
Tetrad

1
Evet, hata ayıklayıcı oldukça önemlidir (MonoDevelop's o kadar iyi olmasa da). Ayrıca, ne yazık ki Visual Studio Express ile çalışmadığını söylüyor. İnsanların kullandığı diğer C # IDE'leri bilmiyorum. Ama gerçekten, Birlik ile birlikte gelen gemi daha iyi durumda olmalıdır.
Kylotan

Sublime Texthttp: //wiki.unity3d.com/index.php/Using_Sublime_Text_as_a_script_editor
Terrance

Denemedim, ancak hata ayıklamak için Visual Studio'yu kullanmanın bir yolu olduğunu okudum (eklenti aracılığıyla, sanırım). Bu sadece Pro sürümü için olsa olabilir, emin değilim.
Christian

FWIW, UnityVS, Visual Studio entegrasyonunu çok daha yumuşak hale getirir. Hata ayıklama, adım atma, vb.
Temel

5

Benim için en ciddi sınırlama EULA'da:

"Kumar Kısıtlamaları Unity'den ayrı bir lisans olmadan Kumar İçeriği ile bağlantılı hiçbir Lisans İçeriğini dağıtamaz veya yayınlayamazsınız."

Bu, v4.0’dan bu yana, siz veya müşterileriniz, duruma göre pazarlık edilen ek bir lisans ücreti ödemeye hazır olmadıkça, nakit / şans içeren oyunlar için Unity'yi kullanamayacağınız anlamına gelir. Yani, 6 rakamla birlikte, size ne kadar değer verdiğinizi ve buna göre vergi aldığınızı görüyorlar.

Daha rahatsız edici olan şey v5 EULA'ya ne katacaklarını bilenler. Belki bütün sosyal oyunlar? Belki de tüm çok oyunculu oyunlar?

Birlik kullanan herhangi bir geliştirici, gelecek sürümlerde fidye için tutulma riski altındadır.


4
Herhangi bir üçüncü taraf araç veya yazılımı yeni sürümlerde EULA cümleleri ekleyebilir (veya kaldırabilir). Bunun Birliğe nasıl özgü olduğunu gerçekten anlamıyorum. Dahası, kanıtları desteklemeden, kumar oynamayan fıkrasının, yazılımın genel olarak en kısıtlı olan sınırlaması olacak kadar ciddi olduğunu iddia etmek garip görünüyor, bu da orijinal (kuşkusuz şimdi konu dışı) sorununun üstesinden gelmeye çalıştığı şeydi. Unity oyunlarının çoğu, temel bir özellik olarak kumar oynamaya dayanmadıkça, bu cevap daha rant gibi gözüküyor.
Josh

4

İyi soru. Benim için en büyük sorun GUI. Programcı merkezli olmasını umursamıyorum, ancak GUI nesnelerinin bir nesne yerine işlevler olduğu ve GUI işlemlerinin hepsinin oluşturma ve olay işleme için kullanılan bir işlev çağrısına doldurulmasının berbat bir şekilde umursamıyorum. ve giriş sistemiyle entegrasyonun olmadığı (yani GUI öğelerine yapılan tıklamalar dünyadaki tıklamalar olarak yorumlanabilir), vb.

İkincil bir sorun, yeterli sürüm kontrol desteğinin olmamasıdır (çoğunlukla sistem, dizini düzenini, bir şeyleri taşırken ya da yeniden adlandırırken VCS'yi karıştıran proje düzeni olarak kullanmaktadır), ancak bu sorun çözülebilir ve bunun için bir sorun değildir. millet.


Bir tıklamanın tükenip tüketilmediğini görmek için GUI sistemini sorgulayabilir ve ardından dünya objec toplama kodunuzdaki tıklamayı yok sayabilirsiniz. Hantal, ama çalışır.
Sean Middleditch

Bunu nasıl yaptın?
Kylotan

Giriş sistemi nesnesinin üzerinde, imlecin altında GUI öğesi yoksa sıfır olacak "sıcak" öğenin kimliğini alma özelliği vardır. Tam özellik adını unutun, ancak birlik komut dosyasında olması gerekir.
Sean Middleditch
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.