CodeBlanks Logo Icon CodeBlanks

Grid üretimi

İki boyutlu grid ile harita üretmeyi öğrenirsin.

2D Grid Tabanlı Harita Üretimi

Birçok strateji, bulmaca ve roguelike oyun iki boyutlu bir Grid (ızgara) matrisi üzerinde inşa edilir. int[,] map = new int[width, height]; dizisi oluşturularak her hücreye zemin, su veya duvar kimliği atanır.

int[,] map = new int[10, 10];
for (int x = 0; x < 10; x++) {
    for (int y = 0; y < 10; y++) {
        map[x, y] = 1; // 1 = Zemin karosu
    }
}

İç içe iki for döngüsüyle tüm koordinatlar taranarak harita doldurulur.

Döşeme (Tile) ve Prefab Yerleştirme

Grid matrisi hesaplandıktan sonra, hücredeki değere göre ilgili görsel prefab sahneye yerleştirilir. Hücre koordinatları döşeme boyutuyla (tileSize) çarpılarak dünya pozisyonuna dönüştürülür.

Vector3 pos = new Vector3(x * tileSize, 0, y * tileSize);
Instantiate(tilePrefab, pos, Quaternion.identity);

Böylece bellek matrisindeki sayılar gerçek dünyada yürünebilir bir oyun haritasına dönüşür.

Uygulama Grid boyutu yapılandırma

Bir Start metodu tanımla. İçinde int gridBoyut = 16; tanımla ve konsola "Grid boyutu: " + gridBoyut yazdır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class GridTester : MonoBehaviour
{
    // Start icinde gridBoyut tanimla ve yazdir
}

Örnek çözüm

Player.cs
using UnityEngine;

public class GridTester : MonoBehaviour
{
    void Start()
    {
        int gridBoyut = 16;
        Debug.Log("Grid boyutu: " + gridBoyut);
    }
}

Beklenen çıktı

Grid boyutu: 16

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 2D grid tabanlı bir haritada her bir hücrenin (x, y) koordinatındaki döşeme türünü saklamak için en uygun veri yapısı hangisidir?

  • TextMeshPro yazı tipi
  • Rigidbody bileşeni
  • AudioSource dizisi
  • İki boyutlu dizi (int[,]) Doğru cevap

Açıklama: İki boyutlu diziler (int[,]), satır ve sütun yapısıyla x ve y koordinatlarını doğrudan temsil etmek için idealdir.

2 Grid matrisi oluşturma

Soru
int[,] gridMap = new int[____, height];
Cevap
int[,] gridMap = new int[width, height];

Açıklama: İki boyutlu dizi tanımlanırken birinci boyut genellikle genişliği (width) temsil eder.

3 Grid harita bileşenleri

Kavram Anlamı
Grid Satır ve sütunlardan oluşan ızgara
Tile Hücreye yerleştirilen döşeme
int[,] İki boyutlu matris veri yapısı
tileSize Hücreler arasındaki fiziksel mesafe

İleri seviye bölümündeki tüm dersler