CodeBlanks Logo Icon CodeBlanks

Asset bundle

AssetBundle ile büyük varlıkları parça parça yüklemeyi öğrenirsin.

AssetBundle nedir?

AssetBundle, oyun varlıklarını tek bir paket dosyasında taşıyan yapıdır. Büyük varlıkları oyun başında tek seferde yüklemek yerine AssetBundle ile parça parça yükleyebilirsin. Bu sayede aynı anda bellekte kalan veri miktarı azalır.

AssetBundle paket = AssetBundle.LoadFromFile("dolap");

Paket, varlıklar gerektikçe açılır ve kullanılır.

Streaming

Streaming, varlıkların akış hâlinde ve gerektikçe yüklenmesidir. Oyuncunun hemen görmeyeceği bir bölüm daha sonra yüklenebilir. Böylece hem yükleme süresi hem bellek yükü bölüşülür.

string paketAdi = "SahneVarligi";
int parcaSayisi = 3;

Parça parça yükleme, büyük oyunlar için vazgeçilmezdir.

Uygulama Paket kaydı tut

VarlikYukleme sınıfında paketAdi adında bir metin alanını "SahneVarligi" ve parcaSayisi adında bir tam sayı alanını 3 değeriyle tanımla. Start metodu içinde Debug.Log ile "Paket: ", paketAdi, " Parca: " ve parcaSayisi parçalarını birleştirerek yazdır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class VarlikYukleme : MonoBehaviour
{
    // paketAdi adli metin alanini "SahneVarligi", parcaSayisi adli tam sayi alanini 3 degeriyle tanimla

    void Start()
    {
        // "Paket: " + paketAdi + " Parca: " + parcaSayisi biciminde yazdir
    }
}

Örnek çözüm

Player.cs
using UnityEngine;

public class VarlikYukleme : MonoBehaviour
{
    string paketAdi = "SahneVarligi";
    int parcaSayisi = 3;

    void Start()
    {
        Debug.Log("Paket: " + paketAdi + " Parca: " + parcaSayisi);
    }
}

Beklenen çıktı

Paket: SahneVarligi Parca: 3

Soru ve cevaplar

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

1 AssetBundle kullanmanın temel amacı nedir?

  • Tüm varlıkları oyun başında tek seferde yüklemek
  • Işık hesaplarını oyun sırasında hızlandırmak
  • C# dosyalarını derlemek
  • Büyük varlıkları gerektikçe parça parça yüklemek Doğru cevap

Açıklama: AssetBundle büyük veriyi böler; böylece tüm varlıklar aynı anda belleğe yüklenmez.

2 Paketi dosyadan yükle

Soru
    AssetBundle.____("dolap");
Cevap
    AssetBundle.LoadFromFile("dolap");

Açıklama: AssetBundle.LoadFromFile paket dosyasını diskten yükler; gereksiz tam yükleme yerine bu yöntem kullanılır.

3 AssetBundle terimleri

Kavram Anlamı
AssetBundle Varlıkları taşıyan paket dosyası
Parça parça yükleme Büyük varlıkları bölerek getirme
Streaming Gerektikçe akışla yükleme
Bellek yükü Aynı anda taşınan veri miktarı

Uzman bölümündeki tüm dersler