Menu
CoddyTech

Izgarada Nesne Oluşturma

Coddy'nin Unity Journey'sinin Unity'de Script Yazmanın Temelleri bölümünün bir parçası. Ders 64 / 85.

Bir döngünün içinde başka bir döngü, bir ızgaradaki her hücreyi ziyaret eder: dıştaki döngü bir sütun seçer, içteki döngü sütun boyunca ilerler. İçine bir Instantiate koyarsan her hücreye bir nesne eklenir. Böylece 2 birim genişliğindeki karolardan 3'e 3'lük bir zemin oluşturulur; karoların arasında 2 birim boşluk olur:

public GameObject tilePrefab;

void Start()
{
    for (int x = 0; x < 3; x++)
    {
        for (int z = 0; z < 3; z++)
        {
            Vector3 spot = new Vector3(x * 2, 0, z * 2);
            Instantiate(tilePrefab, spot, Quaternion.identity, transform);
        }
    }
}

Karolar x = 0, 2, 4 ve z = 0, 2, 4 konumlarına yerleşir: (0, 0, 0) ile (4, 0, 4) arasına toplam dokuz karo. Döngüler Start() içinde bir kez çalışır. Update() içinde olsalardı her karede dokuz karo daha eklerlerdi.

Dördüncü argüman bir üst nesnedir. Üst nesnesi olmayan dokuz Tile(Clone) nesnesi Hierarchy'yi karmaşıklaştırır; transform değerini iletmek, bu nesneleri scriptin bağlı olduğu Floor nesnesinin altına yerleştirir. Böylece bunları daraltabilir, birlikte taşıyabilir veya birlikte silebilirsin. İlettiğin konum hâlâ dünya konumudur.

challenge icon

Görev

Orta

4 genişliğinde ve 5 yüksekliğinde bir Tuğla prefab duvarı oluştur.

  1. Start() içinde, c değerini 0'dan 3'e kadar döngüye al ve bunun içinde r değerini 0'dan 4'e kadar döngüye al.
  2. İç döngüde Instantiate(brickPrefab, new Vector3(-1.5f + c, 0.25f + r * 0.5f, 0), Quaternion.identity, transform) çağır. Son argüman, her tuğlayı Wall'un alt öğesi yapar.

“Oyna” düğmesine bas: yerde 20 tuğladan oluşan bir duvar durur. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class WallBuilder : MonoBehaviour
{
    public GameObject brickPrefab;

    void Start()
    {
        // 4 sütun ve 5 sıra tuğla; her biri bu Wall'un bir alt nesnesi
    }
}

Unity'de Script Yazmanın Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Unity playground