Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Unity Level Generator

Unity içinde renk tabanlı lane ve grid puzzle seviyeleri hazırlamak için geliştirilmiş görsel bir level authoring aracıdır. Hücre düzenini editör üzerinden oluşturur, oyun kurallarına göre doğrular ve sonucu doğrudan LevelData ScriptableObject verisine kaydeder.

Unity Level Generator demosu

MP4 demo videosunu aç

Özellikler

  • Data-driven GridX ve GridY desteği
  • Odin TableMatrix ile görsel grid düzenleme
  • Sol tıkla renk değiştirme, sağ tıkla hücre temizleme
  • Board dışında duran aktif/launcher araç rengini belirleme
  • Kurallara uygun rastgele layout üretme
  • Renk adetlerini ve tamamlanabilir lane bütçesini canlı gösterme
  • Board + aktif araç kapsamında tek Rainbow doğrulaması
  • Boş hücre, geçersiz renk bütçesi ve layout boyutu kontrolleri
  • Başlangıçta completed olan lane'ler için uyarı
  • Layout'u düz bir serialized array olarak LevelData asset'ine kaydetme
  • Undo ve AssetDatabase.SaveAssets desteği

Demo Kural Seti

Bu repodaki örnek, tamamen dolu dikey lane'lerden oluşan bir renk sıralama oyunu için hazırlanmıştır.

  • GridX: Lane sayısı
  • GridY: Her lane içindeki araç/slot sayısı
  • Board her zaman tamamen doludur.
  • Aktif launcher aracı board dışında tutulur.
  • Board ile aktif araç birlikte değerlendirildiğinde toplam Rainbow sayısı tam olarak birdir.
  • Her normal rengin toplam adedi GridY değerinin katı olmalıdır.
  • Üst satır lane girişini, alt satır y = 0 çıkışını temsil eder.
  • Otomatik doldurma, mümkün olduğunda başlangıçta tamamlanmış lane üretmez.

Örneğin 5x6 grid için board'da 30 araç bulunur. Board dışındaki aktif araçla birlikte toplam mantıksal araç sayısı 31 olur.

Hangi Oyunlarda Kullanılabilir?

Araç kendi validasyon kurallarına uyarlanarak şu oyun türlerinde kullanılabilir:

  • Car Sort ve Parking Sort oyunları
  • Ball Sort ve Stack Sort oyunları
  • Renk eşleştirme puzzle'ları
  • Lane tabanlı mobil casual oyunlar
  • Grid tabanlı match ve sıralama oyunları
  • Launcher veya queue üzerinden board'a parça gönderen puzzle'lar
  • Sabit boyutlu board kullanan level tabanlı prototipler

Fizik tabanlı veya tamamen prosedürel dünyalar için doğrudan çözüm değildir; ancak grid authoring ve ScriptableObject kayıt katmanı yeniden kullanılabilir.

Gereksinimler

  • Unity 2022.3 LTS veya üzeri
  • Odin Inspector

Odin Inspector lisanslı bir üründür ve bu repoya dahil edilmemiştir. Aracı kullanacak Unity projesinde ayrıca kurulu olmalıdır.

Kurulum

Package Manager ile

Unity Package Manager içinde Add package from git URL seçeneğini açın ve şu adresi kullanın:

https://github.com/eFurkanSngl/Unity-Level-Generator.git

Manuel kurulum

Runtime ve Editor klasörlerini Unity projenizin Assets klasörü altına kopyalayın.

Kullanım

  1. Project penceresinde Create > Level Generator > Level Data ile bir asset oluşturun.
  2. Unity menüsünden Tools > Unity Level Generator penceresini açın.
  3. Hedef LevelData asset'ini seçin.
  4. Grid boyutunu belirleyin veya mevcut veriyi yükleyin.
  5. Hücreleri elle düzenleyin ya da Otomatik Doldur butonunu kullanın.
  6. Canlı renk bütçesini kontrol edin.
  7. Doğrula butonuyla kuralları test edin.
  8. LevelData'ya Kaydet ile sonucu asset'e yazın.

Veri Yapısı

Unity iki boyutlu dizileri standart Inspector serialization ile saklamadığı için layout düz bir array içinde tutulur:

int index = y * gridX + x;

Runtime erişimi:

CarColorEnum color = levelData.GetColor(x, y);

Bu yaklaşım editor aracını runtime board üretiminden ayırır. Araç yalnızca veri hazırlar; gameplay sistemi kaydedilen LevelData üzerinden kendi mantıksal board'unu oluşturur.

Özelleştirme

  • Yeni renkler CarColorEnum içine eklenebilir.
  • Hücre renkleri ColorFor metodundan değiştirilebilir.
  • Random üretim kuralları AutoFill içinde düzenlenebilir.
  • Projeye özel hatalar Validate metoduna eklenebilir.
  • Farklı veri tipleri için LevelData genişletilebilir veya kendi ScriptableObject yapınızla değiştirilebilir.

Klasör Yapısı

Editor/
  LevelGeneratorWindow.cs
Runtime/
  CarColorEnum.cs
  LevelData.cs
Media/
  level-generator-demo.gif
  level-generator-demo.mp4
package.json
README.md
LICENSE

Lisans

Kaynak kod MIT lisansı altında sunulur. Odin Inspector bu lisansın kapsamında değildir ve repoda dağıtılmaz.

About

Unity için renk tabanlı grid ve lane puzzle level oluşturma aracı.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages