Bir süre önce Unity ile çalışmaya başladım ve hala sıkı bir şekilde birleştirilmiş senaryolar konusunda mücadele ediyorum. Bu sorunu önlemek için kodumu nasıl yapılandırabilirim?
Örneğin:
Ayrı senaryolarda sağlık ve ölüm sistemlerine sahip olmak istiyorum. Ayrıca oyuncu karakterinin hareket şeklini değiştirmeme izin veren değiştirilebilen farklı yürüyüş senaryolarına sahip olmak istiyorum (Mario gibi süper etli çocuklarda olduğu gibi sıkı, seğirmeli kontroller gibi fizik tabanlı eylemsizlik kontrolleri). Sağlık senaryosunun Ölüm senaryosuna bir referans tutması gerekir, böylece oyuncular sağlığı 0'a ulaştığında Die () yöntemini tetikleyebilir. Ölüm senaryosunda, ölümün üzerinde yürümeyi devre dışı bırakmak için kullanılan yürüme senaryosuna bir referans verilmelidir (I zombilerden bıktım).
Ben ediyorum normalde gibi arayüzler yaratmak IWalking
, IHealth
ve IDeath
benim kod kalanını bozmadan bir kapris de bu öğeleri değiştirebilir böylece. Diyelim ki oyuncu nesnesine ayrı bir komut dosyası koymalarını isterdim PlayerScriptDependancyInjector
. Belki senaryo kamu olurdu IWalking
, IHealth
ve IDeath
bağımlılıklar sürükleyip uygun komut dosyalarını bırakarak müfettiş gelen düzey tasarımcı tarafından ayarlanabilir böylece, özelliklerini.
Bu, basitçe oyun nesnelerine kolayca davranışlar eklememi ve kodlanmış bağımlılıklar hakkında endişelenmemi sağlayacak.
Birlikteki problem
Sorun Birlik içinde ben denetiminde arabirimleri maruz olmasıdır, ve kendi müfettişleri yazarsanız, referanslar tefrika olsun alışkanlık ve gereksiz bir sürü iş var. Bu yüzden sıkı sıkıya kod yazarak bıraktım. Benim Death
komut dosyası, bir başvuru ortaya InertiveWalking
senaryo. Ancak, oynatıcı karakterinin sıkı bir şekilde kontrol edilmesini istediğime karar verirsem, sadece TightWalking
betiği sürükleyip bırakamıyorum, betiği değiştirmem gerekiyor Death
. Bu berbat. Bununla başa çıkabilirim, ama ruhum böyle bir şey yaptığımda her zaman ağlıyor.
Birlik'te arayüzlere tercih edilen alternatif nedir? Bu sorunu nasıl düzeltebilirim? Bulduğum bu , ama ben zaten bildiklerini söylüyor ve nasıl Unity yaptığını bana söylemez! Bu da ne yapılmalı değil, ne yapılması gerektiği ile senaryolar arasında sıkı bağlantı sorununu ele almıyor.
Sonuçta, birliğin kod yazmayı öğrenen bir oyun tasarım geçmişi olan Unity'ye gelenler için yazıldığını ve düzenli geliştiriciler için Unity konusunda çok az kaynak bulunduğunu hissediyorum. Unity'deki kodunuzu yapılandırmanın standart bir yolu var mı, yoksa kendi yöntemimi bulmak zorunda mıyım?
The problem is that in Unity I can't expose interfaces in the inspector
"Müfettişlikte arayüz ortaya çıkar" derken neyi kastettiğimi sanmıyorum çünkü ilk düşüncem "neden olmasın?" Dı.