Menu
CoddyTech

Diziler

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

Bir dizi, aynı türden birçok değeri art arda tutar. Türün ardından köşeli parantezler gelir ve değerleri küme parantezleri arasına yazılır:

int[] scores = { 10, 25, 7 };

Her değerin, dizideki yerini gösteren bir indeksi vardır ve sayma 0'dan başlar: scores[0] 10'dur, scores[1] 25'tir ve scores[2] 7'dir. scores.Length, burada 3 olan değer sayısını verir. scores[3] istemek betiği IndexOutOfRangeException hatasıyla durdurur: dördüncü bir değer yoktur.

for döngüsü, dizide ne olursa olsun Length değerine kadar her değeri ziyaret eder:

for (int i = 0; i < scores.Length; i++)
{
    Debug.Log("Score " + i + ": " + scores[i]);
}

İndekse ihtiyacın olmadığında foreach daha kısadır: foreach (int s in scores) { Debug.Log(s); } her değer için sırayla bir kez çalışır.

challenge icon

Görev

Orta

Bir dizi ve döngü kullanarak şehir silüetini 7 kulelik yap.

  1. heights dizisinin sonuna 6f ve 2f ekle: { 2f, 5f, 3f, 1f, 4f, 6f, 2f }.
  2. PlaceTower satırını for (int i = 0; i < heights.Length; i++) ile değiştir.
  3. Döngünün içinde PlaceTower(i * 1.5f - 4.5f, heights[i]); çağrısını yap.

“Oyna” düğmesine bas: farklı yüksekliklerde yedi kule yan yana duruyor. Ardından “Kontrol et” düğmesine bas.

Kendin dene

using UnityEngine;

public class Skyline : MonoBehaviour
{
    void Start()
    {
        float[] heights = { 2f, 5f, 3f, 1f, 4f };

        // Her yükseklik için bir kule yerleştir.
        PlaceTower(-4.5f, heights[0]);
    }

    void PlaceTower(float x, float height)
    {
        GameObject tower = GameObject.CreatePrimitive(PrimitiveType.Cube);
        tower.name = "Tower";
        tower.transform.position = new Vector3(x, height / 2, 0);
        tower.transform.localScale = new Vector3(1, height, 1);
        tower.GetComponent<Renderer>().material.color = new Color(0.35f, 0.45f, 0.7f);
    }
}

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

Kendi başına pratik yap: Unity playground