Hazır Yapılar ve Örneklemeyi Anlama
Oyun sırasında nesneleri örneklemek ve yok etmek çok önemli kabul edilir. Örneklemek, sadece var olmak demektir. Oyunda öğeler belirir veya "ortaya çıkar", düşmanlar ölür, GUI öğeleri kaybolur ve oyun içinde her zaman sahneler yüklenir. Gereksiz nesnelerden nasıl kurtulacağınızı ve yaptıklarınızı nasıl getireceğinizi bilmek daha da önemli hale gelir.
Önce ne olduğunu anlayalım prefabsvardır. Unity'de Instantiation'ın nasıl çalıştığını anlamak için prefabrikler önemli kabul edilir.
Prefabs Gibi blueprintsbir GameObject. Hazır yapılar bir bakımacopySahne yapılırken mevcut olmasa bile çoğaltılabilen ve bir sahneye konulabilen bir GameObject'in; başka bir deyişle, prefabriklerdynamically generate GameObjects.
Bir prefabrik oluşturmak için, istediğiniz GameObject'i sahne hiyerarşinizden projeye sürüklemeniz yeterlidir. Assets.
Şimdi, bir GameObject'i somutlaştırmak için, Instantiate()betiğimizdeki yöntem. Bu yöntem,MonoBehaviour, bir GameObject'i parametre olarak alır, böylece hangi GameObject'in oluşturulacağını / çoğaltılacağını bilir. Ayrıca, yeni örneklenen nesnenin dönüşümünü ve ebeveynliği değiştirmek için çeşitli geçersiz kılmalara sahiptir.
Yeni bir örnek oluşturmayı deneyelim hexagon ne zaman Space tuşuna basılır.
Adlı yeni bir komut dosyası oluşturun Instantiatorve açın. İçindeUpdate yöntemi, aşağıda verilen kodu yazın.
Burada kullanıyoruz GetKeyDown yöntemi Inputson kare sırasında oyuncunun belirli bir düğmeye basıp basmadığını kontrol etmek için sınıf. Kontrol etmeye devam etmesini istediğimiz için,Update, saniyede 60 kez çalışır. GetKeyDown yöntemi döndürürtrue anahtar tarafından belirtilmişse KeyCode enum (standart bir klavyedeki olası tüm tuşları listeleyen) bu çerçevede basılır.
public class Instantiator : MonoBehaviour {
public GameObject Hexagon;
// Update is called once per frame
void Update () {
if (Input.GetKeyDown(KeyCode.Space)) {
Instantiate(Hexagon);
}
}
}
Üstteki genel GameObject beyanı, önceki derslerimizde Rigidbody2D için yaptığımıza benzer bir yuva yaratıyor. Bu yuva yalnızca kabul ederprefabs (editör zamanında) ve gameObjects (çalışma zamanında), ancak.
Komut dosyasını kaydedin ve derlemesine izin verin. Tamamlandığında, yeni bir tane oluşturun,empty GameObject, nesne hiyerarşiniz sağ tıklama menüsüne gidip Create Empty.
Bu Nesneye tanınabilir bir ad verin, örneğin Instatiator Objectve yeni oluşturduğumuz betiğimizi buna ekleyin. GameObject için ortaya çıkan yuvada, oluşturduğumuz prefabrike sürükleyin.
Oyunu şimdi çalıştırırsak, Boşluk Çubuğuna basmak, prefabrik oluşturmak için kullandığımızla aynı yeni bir Altıgen nesnesi oluşturacaktır. Nesne hiyerarşisinde yaratılan her altıgeni görebilirsiniz. Onları oyunda görememenizin nedeni, şimdilik hepsinin yaratılıyor olmasıdır.exactly biri diğerinin üzerinde.
Bir sonraki dersimizde, nesne yok etme kavramını anlayacağız.