Unity

Unity Programında Prefabs Nesnelerini Kodla Çoğaltma

Projelerde nesneleri tasarım aşamasında da kod aşamasında da oluşturabilirsiniz. Prefabs klasörü içinde oluşturduğunuz bir nesneyi kodla projeye dahil etmenin birden fazla faydası vardır. 

Sıfırdan bir nesneyi oluşturmak için kullanılan kod fazlalığını önler.

Prefabs nesneleri test edilip üzerinde gerekli işlemlerin yapıldığı bir sahne sunar. Sıfırdan hazırlanan bir nesneyi test etmeniz için sürekli kodu çalıştırmanız gerekir.

Kodu değiştirmeden prefabs nesnesi üzerinde değişiklik yaparak kod yapısını bozmamış olursunuz.

Basit bir Prefabs örneği

Öncelikle kod sayfasında kullanacağınız prefabs nesnesinin yükleneceği bir değişken oluşturmalıyız. Tasarım aşamasında bu prefabs nesnesini bu değişkene yüklediğimizde kodla üzerinde değişiklik yapabiliriz. Bu örneğimizde myPrefab isminde bir değişken oluşturuyoruz. Prefabs klasörü içindeki nesnemizi bu değişkene aktarıyoruz.

Öncelikle 3D bir proje oluşturalım. Projemize boş bir nesne ekleyelim. Bu nesnede kodların çalışması için NesneEkle isminde bir script dosyası oluşturalım. Script dosyasına aşağıdaki kodları yazalım.

using UnityEngine;
 
public class NesneEkle : MonoBehaviour
{
    public GameObject myPrefab;
 
    void Start()
    {
        Instantiate(myPrefab, new Vector3(0, 0, 0), Quaternion.identity);
    }
}

Prefabs nesnesini değişkene aktaralım ve projeyi çalıştıralım. Sahnede bir adet küp nesnesini görebiliriz.

Prefabs nesnesine component ekleme

Çalışma zamanında prefabs nesnelerinin kullanımıyla ilgili birkaç örnek verelim.

Bir tane Prefabs nesnesinden birden fazla nesne türeterek istenilen işlemleri gerçekleştirme

Bir silahtan çıkan mermi prefab nesnesine istenilen işe göre birden fazla component ekleyip üzerinde işlemler yapma

Birden fazla nesneden oluşan bir robot nesnesini düşünelim. Tek kodla bu robotu parçalara ayırabilir ya da parçaları birleştirerek robotu oluşturabiliriz

Aşağıdaki örnekler bu işlemleri nasıl yapacağımızı gösterecektir.Şimdi tek bir kutudan bir duvar nesnesi oluşturalım. Yeni bir 3D projesi oluşturalım. Boş bir nesne oluşturalım. Bu nesneyi baz alacak bir script dosyası oluşturalım. Bu dosyanın içine aşağıdaki kodları yazalım.

    public GameObject block;
    public int width = 10;
    public int height = 4;
 
    void Start()
    {
        for (int y = 0; y < height; ++y)
        {
            for (int x = 0; x < width; ++x)
            {
                Instantiate(block, new Vector3(x, y, 0), Quaternion.identity);
            }
        }
    }

Burada prefab nesnesiyle birlikte nesnenin genişliğini ve yüksekliğini de tasarım aşamasında vereceğiz. Projeyi çalıştırdığınızda 40 tane kutudan oluşan duvar yapılmış olur. Burada bir prefab kullanarak 40 tane oluşturduk. Bunların her birine değişik özellikler ekleyebilir ya da her birine farklı prefab dosyası ekleyerek yeni oyun uzayları oluşturabiliriz. Ben burada kod yapısı üzerinde değişiklik yaparak kutuların daire şeklinde yan yana gelmelerini sağlayacağım. Yukarıdaki script dosyasını yeniden düzenleyelim.

    public GameObject prefab;
    public int numberOfObjects = 20;
    public float radius = 5f;
    void Start()
    {
        for (int i = 0; i < numberOfObjects; i++)
        {
            float angle = i * Mathf.PI * 2 / numberOfObjects;
            float x = Mathf.Cos(angle) * radius;
            float z = Mathf.Sin(angle) * radius;
            Vector3 pos = transform.position + new Vector3(x, 0, z);
            float angleDegrees = -angle * Mathf.Rad2Deg;
            Quaternion rot = Quaternion.Euler(0, angleDegrees, 0);
            Instantiate(prefab, pos, rot);
        }
    }

Etiketler
unity oyun c# animasyon prefabs object code 
İlgili Makaleler
Bilgisayarlı Tasarım Uygulamaları Dersi İkinci Dönem Birinci Yazılı Çalışma Soruları
Unity Programında Button Yardımıyla Sahneler Arasında Geçiş Yapma İşlemleri
Unity Programında Mouse Hareketlerine Göre Kamera Açısını Ayarlama
Unity Programında Bir Nesneyi Kodlarla Döndürme İşlemi
Unity Programında Sprite İle 2D Animasyon Yapmak
Unity Programında Material Kullanımı
Unity Programında Puzzle Oyunu Nasıl Yapılır
Bilgisayarlı Tasarım Uygulamaları Dersi İkinci Dönem İkinci Yazılı Çalışma Soruları
Unity Programında Input Get Axis Komutu
Unity Programında Kodlarla Sahneye Nesne Ekleme
Unity Programında Prefabs Nesnelerini Kodla Çoğaltma
Unity Programında Basit Login Yapımı
Unity Projesinde Sql Server Veri Tabanına Bağlanma
Unity Programında Topu Hareket Ettirme Oyunu Kamera Takibini Gerçekleştiriyoruz
Unity Programında Input GetKey Komutu
İki Sayıyı Toplayan İşlemi Unity Programında Kodlayarak Yapınız
Unity Programında Script Editörünü Ayarlama
Terrain Nedir? Ne İşe Yarar?
Unity Programında Topu Hareket Ettirme Oyunu Oyuna Yeniden Başlama Butonunu Kodlayıp Bitiriyoruz
Unity Programında Inspector Ve Console Paneli

Yorum Ekle
   
Kötü
İyi