Türkiye'de ilk Mobil & PC Aynı Anda Metin2 Oyna. Triarchonline kalıcı ve uzun ömürlü yapısı ile 24 Temmuz'da açılıyor. | 1-99 Mobil Metin2 Triarch HEMEN TIKLA!
Deneyimli bir programcıysanız ancak Unity'de yeniyseniz buraya gidin .
Unity'de komut dosyası yazmak nedir?
Komut dosyası oluşturma, GameObject'lerimize nasıl davranacağını söyler; Oyununuzu oluşturan, GameObject'lere eklenen komut dosyaları ve bileşenler ve bunların birbirleriyle nasıl etkileşime girdikleridir. Şimdi, Unity'de komut dosyası yazmak, saf programlamadan farklıdır. Bazı saf programlama yaptıysanız, örneğin çalışan bir uygulama oluşturduysanız, Unity'de uygulamayı çalıştıran kodu oluşturmanıza gerek olmadığını anlamalısınız, çünkü Unity bunu sizin için yapar. Bunun yerine, senaryolarınızda oyuna odaklanırsınız.Unity büyük bir döngü içinde çalışır. Bir oyun sahnesindeki tüm verileri okur. Örneğin ışıkları, ağları, davranışların neler olduğunu okur ve tüm bu bilgileri sizin için işler.
Örneğin Kuzey Amerika'da 29.5 kare/sn'ye sahip olduğunuz televizyonu düşünüyorsanız, Unity'nin de aynı şeyi yapması gerekir. Birbiri ardına tek ayrı kareler çalıştırıyor. Unity'yi komut dosyalarınıza yazdığınız talimatlarla yönetirsiniz ve Unity bunları kare kare olabildiğince hızlı yürütür.
Yüksek bir kare hızı elde etmek, yalnızca oyununuzun daha akıcı görünmesini sağlamakla kalmaz, aynı zamanda komut dosyalarınız da daha sık yürütülerek kontrolleri daha duyarlı hale getirir.
Unity'de hangi dilleri kullanabilirsiniz?
Unity tarafından çağrılabilmesi için sahnedeki bir GameObject'e bir komut dosyası eklenmelidir. Komut dosyaları, Unity'nin anlayabileceği özel bir dilde yazılmıştır. Ve bu dil aracılığıyla motorla konuşabilir ve ona talimat verebiliriz.Unity'de kullanılan dile C# (telaffuz edilen C-sharp) denir. Unity'nin birlikte çalıştığı tüm diller, nesne yönelimli komut dosyası dilleridir. Herhangi bir dilde olduğu gibi, betik dillerinde sözdizimi veya konuşma bölümleri vardır ve birincil bölümlere değişkenler, işlevler ve sınıflar denir.
2017.3'e kadar bir Unity sürümü kullanıyorsanız, MonoDevelop adlı bir metin düzenleyiciye sahip olduğunu fark edeceksiniz: kodumuzu tamamlamamıza yardımcı olabilir, yanlış bir kod parçası yazıp yazmadığımızı bize bildirir, ve kısayollar almamızı sağlar. 2018.1'den itibaren Unity Community için Visual Studio'yu veya Visual Studio, Notepad veya Sublime text gibi diğer metin düzenleyicilerini de kullanabilirsiniz .
İşte içinde bazı örnek kodlar içeren bir komut dosyası ( Mutlak Başlangıç eğitimi için Unity'de Kodlama temel alınarak ):
Gördüğünüz gibi değişkenler, fonksiyonlar ve sınıflar var.
Bunlar ne yapar?
Değişkenler, değerleri ve nesnelere referansları tutar (nesneleri "daha büyük" değişkenler olarak görebilirsiniz). Kullanmamız için bir şeyler tutan bir kutu gibiler. Değişkenler küçük harfle başlar.Fonksiyonlar , bu değişkenleri karşılaştıran ve işleyen kod koleksiyonlarıdır. Fonksiyonlar büyük harfle başlar. Kodu, programın farklı bölümlerinde birden çok kez kolayca yeniden kullanılabilecek şekilde işlevlerde düzenliyoruz.
Sınıflar , bir nesnenin özelliklerini tanımlayan bir şablon oluşturmak için değişken ve işlev koleksiyonlarını birbirine sarmak için kodu yapılandırmanın bir yoludur.
Komut dosyası oluşturma, öncelikle bu nesneleri ve mevcut durumlarını ve değerlerini karşılaştırır. Bir sonucu veya çözümü belirleyen mantığa dayanır.
Değişkenler
Unity'de komut dosyaları, ihtiyacınız olan araçları en üstte düzenleyerek başlar ve bu genellikle değişkenler bildirerek olur. Bildirilen değişkenleri
Linkleri görebilmek için Turkmmo Forumuna ÜYE olmanız gerekmektedir.
tarafta görünürlük anahtar kelimesi "public" veya "private", ardından bir tür ve bir ad ile görebilirsiniz.
Değişkenlerinizi bildirirken birkaç görünürlük türü vardır, ancak en önemli ikisi genel ve özeldir.
Kod düzenleyicinizde yukarıdaki metinle bir komut dosyası oluşturur ve ardından Unity'ye geri döner ve komut dosyasını bir GameObject'e atarsanız, Inspector'da public olarak bildirilen light değişkene erişebildiğinizi ve görebildiğinizi görürsünüz, ancak bunu yapabilirsiniz. özele bakma. Ve bunun nedeni, "özel" olarak tanımlanan şeye yalnızca bu belirli komut dosyası içinde, bu belirli sınıf içinde erişilebilir.
Bunu herkese açık yaparsanız, diğer komut dosyaları ve diğer sınıflar tarafından erişilebilir olur ve Unity düzenleyicisinden Inspector'da değiştirilebilir. Bu, diğer insanların ona erişebileceği ve değerini değiştirebileceği anlamına gelir.
Özel veya kamu arasında seçim yapmak için birçok neden vardır . Özel değişkenler, kodunuzun daha temiz olmasını sağlar, çünkü bu değişkenlerin değerinin yalnızca o sınıf içinde değiştirilebileceğini bilirsiniz. Bu, kodun hata ayıklamasını ve bakımını kolaylaştırır.
“public” öğesini seçerseniz ve bir sorunla karşılaşırsanız, başka herhangi bir nesnenin bu değişkene erişimi olduğundan, kaynağı izlemek için tüm kod tabanınızın içine bakmanız gerekir. Ancak, nesnelerin kendi aralarında iletişim kurmasını istiyorsanız, bazı değişkenlerin (veya işlevlerin) genel olması gerekir.
Değişkenlerin bir diğer önemli yönü de tiptir. Bir tür, değişkenin bellekte ne tür bir değer tuttuğunu tanımlar, örneğin bir sayı, metin veya aşağıdaki resimdekiler gibi daha karmaşık türler olabilir: Aşağıdaki resimdeki Dönüştürme, Işık ve Demo Komut Dosyası aslında referanslardır. Bileşenler'e. Unity'nin ne tür bir nesne olduğunu bilmesi gerekir, böylece onu nasıl ele alacağını bilir.
Değişkenlerle ilgili bir diğer önemli şey de isimdir. Değişkenleri adlandırırken hatırlamanız gereken en önemli şey, bir sayı ile başlamaması ve boşluk içermemesidir. Bu nedenle, isimleri yazmanın bir tarzı var. C#'da adlandırma kuralı camelCase'dir: küçük harfle başlarsınız ve boşluk bırakmadan büyük harfle başlayan sözcükler eklersiniz, örneğin "myLight".
Unity betiği derlediğinde, genel değişkenleri düzenleyicide görünür hale getirir. Müfettişten aşağıdaki resme bakın.
Fonksiyonlar
Komut dosyaları, işlevleri kullanarak değişkenleri değiştirir. Unity içinde otomatik olarak çalışan bir dizi işlev vardır. Aşağıya bakınız:
Awake , bu bileşene sahip GameObject başlatıldığında yalnızca bir kez çağrılır. Bir GameObject aktif değilse, aktif hale getirilene kadar çağrılmayacaktır. Ancak, GameObject etkin olsa da bileşen etkinleştirilmemiş olsa bile (adının yanındaki küçük onay kutusuyla birlikte) Awake çağrılır. Değer atamanız gereken tüm değişkenleri başlatmak için Awake'i kullanabilirsiniz.
Başlat - Uyanış gibi, Başlat, bir GameObject etkinse, ancak yalnızca bileşen etkinse çağrılır. Awake ile arasındaki farklar hakkında daha fazla bilgi için bu videoya bakın .
Güncelleme , çerçeve başına bir kez çağrılır. Animasyonlar, yapay zeka ve oyunun sürekli güncellenmesi gereken diğer bölümleri gibi sürekli çalışan mantığı tanımlamak için kod koyacağınız yer burasıdır.
Sabit Güncelleme , fizik çalışması yapmak istediğiniz zamandır .
Gördüğünüz gibi, Sabit Güncelleme ve Güncelleme var ve Scripting eğitimleri bölümümüzde, Güncelleme ve Sabit Güncelleme işlevleriyle her karede değişiklik yapmayı ve bunların farklılıklarını öğrenebilirsiniz .
LateUpdate , Update'e benzer bir işlevdir, ancak çerçevenin sonunda LateUpdate çağrılır. Unity, tüm oyun nesnelerine bakacak, tüm Güncellemeleri bulacak ve LateUpdates'i arayacaktır. Bu kamera gibi şeyler için iyidir. Diyelim ki oyununuzdaki bir karakteri taşımak istiyorsunuz. Sonra başka bir karakterle karşılaşıyor ve kendini farklı bir pozisyonda buluyor. Karakterle aynı anda kamerayı hareket ettirirsek, bir sallanma olur ve kamera olması gereken yerde olmazdı. Yani, temel olarak, çok kullanışlı olan ikinci bir döngü.
Yazma işlevleri
Bir fonksiyon yazarken, fonksiyonların başlangıçta fonksiyonun döndürülen tipiyle başladığını, ardından fonksiyonun adını ve ardından parantez içindeki (varsa) parametrelerle başladığını unutmayın. İşlev adları büyük harfle başlar ve işlevin gövdesi küme parantezleri arasında gider. İşte bir fonksiyonun nasıl yazılacağına dair bir örnek:
Bu fonksiyonu nasıl çağırırız?
Fonksiyonlar hesaplamalar yapabilir ve ardından bir değer döndürebilir. Bir işlevden bir şey yapmasını isteyebilir, bilgileri işleyebilir ve ardından bir yanıt verebilirsiniz. "Void" türünü kullanırsanız, hiçbir şey döndürmezler.
sınıflar
Sınıflar, bu değişkenlerin ve işlevlerin koleksiyonlarıdır. Örneğin, bu komut dosyası bir sınıftır:
Sınıf adının çalışması için C# betiğinin dosya adıyla eşleşmesi gerektiğini unutmayın. Ve sonra bir GameObject'e eklenmek için, bir komut dosyası oluşturduğunuzda sizin için otomatik olarak oraya yerleştirilen MonoBehaviour adlı başka bir sınıftan türetilmesi gerekir. Sınıflar ayrıca genel veya özel olabilir.
Unity'de, aşağıdaki örnekte olduğu gibi özel bir sınıf oluşturursanız, onu seri hale getirmesini istemeniz gerekir . Bu, Unity'nin denetçide bakabileceği basit verilere dönüştürüleceği anlamına gelir. Bunu yaptığınızda, müfettişte sınıfın görüneceğini göreceksiniz.
Değişkenler, işlevler ve sınıflar, Unity'de kodlamaya başlamanın yalnızca temelleridir. Öğren bölümüne göz atın , sıfırdan programlama hakkında bilgi edinmenize ve ardından projeleriniz için ayrıntılı kod oluşturmaya başlamanıza yardımcı olacak bir dizi faydalı komut dosyası oluşturma öğreticisi bulabilirsiniz .
Son düzenleme:
Şu an konuyu görüntüleyenler (Toplam : 0, Üye: 0, Misafir: 0)
Benzer konular
- Cevaplar
- 1
- Görüntüleme
- 13
- Cevaplar
- 1
- Görüntüleme
- 13
- Cevaplar
- 4
- Görüntüleme
- 120
- Cevaplar
- 1
- Görüntüleme
- 39
