Prefab'ler ve Instantiate
Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 62 / 85.
Prefab, şablon olarak kaydedilmiş bir GameObject'tir: Hierarchy'den bir nesneyi Project penceresine sürüklediğinde Unity, nesneyi tüm bileşenleri ve Inspector değerleriyle birlikte kaydeder. Prefab'ın kendisi sahnede değildir. Bir betik, diğer tüm başvurular gibi bir alan aracılığıyla prefab'a erişir: public GameObject parcelPrefab; bildirimini yap ve prefab'ı Inspector'daki bu alana sürükle.
Instantiate(prefab, position, rotation) sahnede prefab'ın 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, 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 değişmeden kalır, bu nedenle 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
OrtaHer tıklamada oyuncunun üstünde bir madeni para oluştur.
public GameObject coinPrefab;alanını ekle. Sahne bu alanı Coin prefab'ıyla doldurur.Update()içinde,Input.GetMouseButtonDown(0)olduğundaInstantiate(coinPrefab, transform.position + new Vector3(0, 2, 0), Quaternion.identity);çağır.
“Oyna” düğmesine bas, hareket et ve tıkla: her seferinde oyuncunun üstünde bir madeni para belirir. Ardından “Kontrol et” düğmesine bas.
Kendin dene
using UnityEngine;
public class CoinDropper : MonoBehaviour
{
public float speed = 4f;
// coinPrefab: Coin prefab'ı ile doldurulmuş bir public 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);
}
// Click: oyuncunun 2 birim üzerinde bir coin oluştur
}
}
Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler
1Unity'de C# Temelleri
Merhaba, UnityDeğişkenlerOndalık Sayılar için f GerekirKonsolda MetinHatırlayan DeğişkenlerEğer ve DeğilseSayıları KarşılaştırmaTekrar: Coin Collector4Girdi
Basılı, Basılı Tutulmuş, BırakılmışEksenlerAdlandırılmış DüğmelerFare DüğmeleriTekrar: Zıplama Yükleme7Döngüler ve Metotlar
for ile tekrarlamaİç içe döngülerBir metot yazmaYanıt veren metotlarDizilerTekrar: Merdiven10Nesneleri Bulma
Ada Göre BulEtiketlerTüre Göre BulReferanslar Bulmaktan İyidirUnity'de NullÖzet: En Yakın Madeni Para13Proje: Bloklardan Kaç
KoşucuGökyüzünden Bloklar5Vektörler
Vektörleri ToplamaYönlerYerel ve Dünya UzayıÇapraz HızNesneler Arasındaki MesafeVector3 Bir Struct'tırTekrar: Drone Pilotu8GameObject'ler ve Bileşenler
Inspector'daki ReferanslarBir Bileşen AlEksik BileşenlerBileşen EkleRequireComponentGöster ve GizleÖzet: Işık Anahtarı11Prefab'ler ve Nesne Oluşturma
Prefab'ler ve InstantiateZamanlayıcıyla Nesne OluşturmaIzgarada Nesne OluşturmaNesne ListeleriEn Yeniyi Geri AlmaYok EtmeRastgele Nesne OluşturmaTekrar: Havai Fişekler3Inspector
Inspector AlanlarıSerializeFieldOndalıklı Sayılar ve MathfInspector ÖzellikleriTekrar: Asansör6Dönüşümler ve Hiyerarşi
Ebeveynler ve ÇocuklarBayrağı Göndere ÇekÖlçekNesnelere BakBir Noktaya Doğru Hareket EtTekrar: Yörüngedeki Ay9Proje: Yıldızı Yakala
YakalayıcıDüşen Bir YıldızKendi başına pratik yap: Unity playground