Cities: Skylines, oyunu içerisinde sık kullandığınız kavşak, park vb. yerleri kent unsuru düzenleyicisinde 1 kere yapıp oyun da sürekli kullanmayı tarif ediyorum.
Profesyonel kullanıcılar için aşağıdaki yöntemleri öneririz.
Modlama Temelleri
Temel veya gelişmiş modunuzu kurduktan sonra , aslında bir mod oluşturmaya başlama zamanı. Bu sayfa nasıl başlayacağınızı ve modlamanın tüm temellerini kapsayacaktır.
Başlarken
Bir mod oluşturmak için yaptığınız ilk şey, uygulayan bir sınıf oluşturmaktır IUserMod
. Bu, herhangi bir mod için başlangıç noktasıdır IUserMod
ve oyunu uygulayarak modunuzu yükleyebilirsiniz.
Ad alanı
Modunuz her zaman bir ad alanı içinde olmalıdır . Ad alanının adı o kadar önemli değil, ancak modunuzun adını kullanmanız önerilir. Bu, diğer modlarla çakışmaları önleyecek ve kodunuzu ad alanınızda kapsayarak projelerinizi daha düzenli tutacaktır.
Yönergeleri kullanma
ICities API’yi ve diğer derlemeleri doğru şekilde kullanmak için using yönergelerini eklemeniz gerekir. Çoğu durumda, ICities ve UnityEngine’i kullanacaksınız, bu nedenle kodunuza bu satırları ekleyerek başlayın.
IUserMod
Uygulayarak , modunuz için IUserMod
bir Name
ve belirtmeniz Description
gerekir. Bunlar, modunuzu görüntülemek için İçerik Yöneticisi içinde kullanılır . Modunuzun ilk kodu daha sonra buna benzer şekilde görünmeli ve bunu içerik yöneticisine yükleyebilmelisiniz.
ICities kullanarak;
UnityEngine kullanarak;
ad alanı ModName {
public class ModName: IUserMod {
public string Name {
get {return "Mod Adı"; }
}
public string Açıklama {
get {return "Hiçbir şey yapmayan ilk harika modum! * JEEY *"; }
}
}
}
Modding Temelleri
Artık bir çalışma modunuz olduğuna göre, onu gerçekten bir şeyler yapmanın zamanı geldi. Bu her mod için farklıdır, ancak işte başlamak için bilmeniz gereken bazı şeyler. Modunuzun yapabileceği milyonlarca olasılık vardır, bundan sonra fikirlerinizi gerçek bir moda nasıl dönüştüreceğinizi bulmak için kendi başınıza olacaksınız. Hala belirli şeyleri nasıl yapacağınızı öğrenmek için okuyabileceğiniz birçok başka kılavuz var.
Birlik
Oyun Unity’de inşa edilmiştir, bu da Unity’nin hem temel hem de gelişmiş modlarda sunduğu tüm işlevlere erişebileceğiniz anlamına gelir. Örneğin, oyun nesneleri ve tek davranışlar oluşturabilir, UI öğelerini işleyebilir, fizik ve diğer birçok şeyi kullanabilirsiniz. Unity’nin nasıl çalıştığını öğrenmek ve neler yapabileceğinizi görmek için Unity Kılavuzu’na veya Unity API’sine bakın.
Temel modlar
Temel modlar için çoğunlukla arayüzler uygulayacak ve temel sınıfları genişleteceksiniz.
Örnek
Bu sınıfı modunuza eklerseniz sınırsız petrol ve cevher kaynakları elde edersiniz. Sınıflar, ana dosyanıza veya yeni bir dosya oluşturarak eklenebilir.
public class UnlimitedOilAndOreResource: ResourceExtensionBase {
public override void OnAfterResourcesModified (int x, int z, NaturalResource türü, int miktar) {
if ((type == NaturalResource.Oil || type == NaturalResource.Ore) && amount <0) {
resourceManager.SetResource (x, z, tür, (bayt) (resourceManager.GetResource (x, z, tür) - miktar), yanlış);
}
}
}
Bunu parçalara ayırırsak, genişleyen yeni bir sınıf oluşturduğumuzu görebilirsiniz ResourceExtensionBase
. Bunu yaparak OnAfterResourcesModified
, doğal bir kaynak değiştirildiğinde çalıştırılan bir API yöntemini geçersiz kılabiliriz . Daha sonra sadece petrol ve cevheri geçersiz kıldığımızdan emin olmak için bazı kontroller yapıyoruz. Yaptığı son şey aslında resourceManager
. Bir şeyleri değiştirmek ve değerleri elde etmek için kullanılabilecek birçok yönetici var, bu nedenle çoğunlukla yöneticileri kullanıyor ve yöntemlerini çağırıyor olacaksınız.
Yöneticiler
Tüm arabirimler / temel sınıflar, size ilgili yöneticiyi sağlayan OnCreated yöntemine sahiptir. Örneğin, LoadingExtensionBase’i genişletirseniz, OnCreated
yöntemi geçersiz kılabilirsiniz ve ILoading
yöneticiyi elde edersiniz . Her yönetici arayüzünün ayrıca diğer tüm yöneticilere bir referansı vardır.
public class LoadingExample: LoadingExtensionBase {
public override void OnCreated (ILoading loading) {
loading.managers.milestones.UnlockMilestone ("Temel Yol Oluşturuldu");
}
}
Burada görebileceğiniz gibi, ILoading yöneticisine bir referans alıyoruz, ancak daha sonra tüm yöneticilere erişiyoruz ve kilometre taşları yöneticisine erişebiliyoruz. Daha sonra, bir seviye yüklendiğinde ‘Oluşturulan Temel Yol’ aşamasının kilidini açabiliriz. Daha fazla bilgi için, modlama sayfasındaki yönetici bilgilerine bakın.
Modding API
Bir sonraki adım, Modding API’ye bakmak ve neler yapabileceğinizi görmektir. ICities derlemesindeki tüm sınıfları ve arabirimleri açıklar.
Gelişmiş modlar
Temel modlarda yapabileceğiniz şeylerin yanı sıra çok daha fazla olasılığa sahipsiniz. Belirli şeylerin nasıl yapılacağını açıklayan birçok kılavuz var, bu yüzden onlara bir göz attığınızdan emin olun. Tam olarak ne yapabileceğinizi anlamak için çoğunlukla CS kodunu Tersine Mühendislik yapacaksınız. Yansıma kullanarak daha da ileri gidebilirsiniz, ancak bu yalnızca daha gelişmiş programcılar içindir.
Tekli tonlar
Oyunda menajerler ve diğer şeyler için bir çok singleton var. Bu, oyunu değiştirmek için yaptığınız çoğu şeyin başlangıç noktası olacaktır. Örneğin, oyunu basitçe duraklatmak için bunu yapabilirsiniz.
Singleton <simulationmanager> .instance.m_simulationPaused = true;</simulationmanager>