Prefab'ler ve Instantiate
Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 48 / 67.
Bir prefab, şablon olarak kaydedilmiş bir GameObject'tir: Hierarchy'den bir nesneyi Project penceresine sürükleyin; Unity, tüm bileşenleri ve Inspector değerleriyle birlikte onu kaydeder. Prefab'ın kendisi sahnede değildir. Bir betik, diğer tüm referanslar gibi bir alan aracılığıyla prefab'a erişir: public GameObject parcelPrefab; bildirimini yapın ve prefab'ı Inspector'daki bu alana sürükleyin.
Instantiate(prefab, position, rotation), prefab'ın sahnede bir kopyasını oluşturur ve bu kopyayı döndürür. Bu teslimat dronu, Space tuşuna her basıldığında kendi konumuna bir paket bırakır. Quaternion.identity, herhangi bir döndürme olmadığı anlamına gelir:
public GameObject parcelPrefab;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
Instantiate(parcelPrefab, transform.position, Quaternion.identity);
}
}Her basış, Hierarchy'ye Parcel(Clone) adlı bir nesne daha ekler. Prefab olduğu gibi kalır; dolayısıyla her kopya aynı değerlerle başlar. Burada GetKeyDown önemlidir: GetKey kullanıldığında Space tuşunu yarım saniye basılı tutmak, her karede bir tane olmak üzere yaklaşık 30 paket bırakır.
Görev
OrtaOklar oyuncuyu zaten hareket ettiriyor. Her tıklamada oyuncunun üstünde bir coin oluştur:
GameObjecttüründe,coinPrefabadlı bir public alan ekle. Alan oluşturulur oluşturulmaz sahne, Coin prefab'ını bu alana yerleştirir.- Sol fare düğmesine tıklandığında, oyuncunun 2 birim üstünde ve hiç döndürmeden coin'in bir kopyasını oluştur.
Play'e bas, birkaç kez hareket edip tıkla, ardından Check'e bas.
Kendin dene
using UnityEngine;
public class CoinDropper : MonoBehaviour
{
public float speed = 4f;
// coinPrefab: Coin prefab'ıyla doldurulmuş public bir GameObject alanı
void Update()
{
if (Input.GetKey(KeyCode.RightArrow))
{
transform.position += new Vector3(speed * Time.deltaTime, 0, 0);
}
if (Input.GetKey(KeyCode.LeftArrow))
{
transform.position -= new Vector3(speed * Time.deltaTime, 0, 0);
}
// Tıklama: oyuncunun 2 birim üzerinde bir coin oluştur
}
}
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler
1İlk Betiğiniz
Merhaba, UnityKüpü YerleştirHer Karede Hareket EtHer Saniye DönTuşlarla Yön VerÖzet: Küpü Sür4Vektörler
Vektörleri ToplamaYönlerYerel ve Dünya UzayıÇapraz HızNesneler Arasındaki MesafeVector3 Bir YapıdırÖzet: Drone Pilotu7Proje: Yıldızı Yakala
YakalayıcıDüşen Bir Yıldız5Dönüşümler ve Hiyerarşi
Ebeveynler ve ÇocuklarÖlçekNesnelere BakışBir Noktaya Doğru HareketTekrar: Yörüngedeki Ay6GameObject'ler ve Bileşenler
Inspector'daki ReferanslarBir Bileşen AlEksik BileşenlerBir Bileşen EkleRequireComponentGöster ve GizleÖzet: Işık Anahtarı9Prefab'ler ve Nesne Oluşturma
Prefab'ler ve InstantiateZamanlayıcıyla Nesne OluşturmaIzgarada Nesne OluşturmaNesne ListeleriYok EtmeRastgele Nesne OluşturmaÖzet: Havai Fişekler