logo

Prefabrik Yapıları ve Örneklemeyi Anlamak

Karakterleri veya nesneleri somutlaştırmak ve yok etmek her oyunda çok yaygındır. Örnekleme, nesneyi varlığa getirmek anlamına gelir. Bir oyunda nesneler belirir, ortaya çıkar veya üretilir, düşmanlar ölür, GUI öğeleri kaybolur ve oyunda sahneler her zaman yüklenir.

Çalışma zamanında karmaşık GameObject'leri veya GameObject koleksiyonunu başlatmak istediğinizde prefabrikler çok kullanışlıdır. Kod kullanarak sıfırdan GameObjects oluşturmakla karşılaştırıldığında, kod kullanarak prefabrikleri başlatmak daha iyidir ve birçok avantajı vardır.

Prefabriklerin ne olduğunu anlayalım; çünkü prefabriklerin Unity'de örneklemenin nasıl çalıştığını anlamak için önemli olduğu düşünülüyor.

Prefabrikler GameObject'in planları gibidir. Yani Prefabriklerin, sahne yapılırken mevcut olmasa bile çoğaltılabilen ve bir sahneye yerleştirilebilen bir GameObject kopyası olduğunu söyleyebiliriz; başka bir deyişle, GameObject'leri dinamik olarak oluşturmak için prefabrik yapılar kullanılabilir.

Bir prefabrik oluşturalım; bunun için istediğiniz GameObject'i sahne hiyerarşinizden proje Varlıklarına sürüklemeniz gerekir.

Prefabrik Yapıları ve Örneklemeyi Anlamak

Şimdi, bir GameObject'i başlatmak için betiğimizde Instantiate() yöntemini çağırıyoruz. Bu yöntem MonoBehaviour'da mevcuttur, GameObject'i parametre olarak alır, böylece hangi GameObject'in oluşturulacağını veya kopyalanacağını bilir. Ayrıca, yeni başlatılan nesnenin dönüşümünü değiştirmek ve ebeveynlik yapmak için farklı geçersiz kılmalara da sahiptir.

ağ türleri

Şimdi Instantiator.cs adında yeni bir komut dosyası oluşturun ve aşağıdaki kodu içine kopyalayın.

 using System.Collections; using System.Collections.Generic; using UnityEngine; public class Instantiator : MonoBehaviour { public GameObject Diamond; // Update is called once per frame void Update() { if (Input.GetKeyDown(KeyCode.Space)) { Instantiate(Diamond); } } } 

Yukarıdaki programda, oynatıcının son kare sırasında belirli bir düğmeye basıp basmadığını kontrol etmek için Giriş sınıfının GetKeyDown yöntemini kullandık. GetKeyDown() yöntemi, KeyCode numaralandırması tarafından belirtilen tuşa (standart bir klavyedeki tüm olası tuşları listelemek için kullanılır) bu çerçevede basıldığında true değerini döndürür.

Komut dosyasını kaydedin. Şimdi Hiyerarşi sekmesinden sahneye sağ tıklayarak boş bir GameObject oluşturun.

Prefabrik Yapıları ve Örneklemeyi Anlamak

Bu komut dosyasını (Instantiator.cs) Denetçi sekmesinden yeni oluşturulan GameObject Bileşenine ekleyin.

Şimdi, oluşturduğumuz prefab'ı Diamond değişkenine sürükleyin.

Prefabrik Yapıları ve Örneklemeyi Anlamak

Oyunu şimdi çalıştırdığınızda, Boşluk Çubuğuna basmak, prefabrik oluşturmak için kullandığımızın aynısı yeni bir Elmas nesnesi oluşturacaktır. Her elmasın nesne hiyerarşisinde oluşturulduğunu görebilirsiniz. Bunları oyunda görememenizin nedeni şu an için hepsinin tam olarak üst üste oluşturulmuş olmasıdır. Ancak bunu Hiyerarşi sekmesinden doğrulayabilirsiniz. Boşluk çubuğuna her bastığınızda, sekmede Elmas (klon) olarak görünecektir.

Prefabrik Yapıları ve Örneklemeyi Anlamak