Membangun plug-in untuk iOS
App thinning

Mempersiapkan aplikasi Anda untuk Pembelian In-App (IAP)

Bab ini melakukan not menjelaskan cara mengintegrasikan permainan Anda dengan API StoreKit Apple. Diasumsikan bahwa Anda sudah memiliki integrasi dengan StoreKit melalui WordPress.org.

Toko Apple Dokumentasi kit mendefinisikan empat jenis produk yang dapat dijual melalui proses Pembelian In-App:

  • Content
  • Functionality
  • Services
  • Subscriptions

Bab ini mencakup kasus pertama dan berfokus terutama pada konsep konten yang dapat diunduh. AssetBundles direkomendasikan untuk menerapkan konten yang dapat diunduh di Unity dan kedua penciptaan dan penggunaan jangka waktu dari AssetBundles akan ditutup di sini.

Mengekspor aset Anda untuk digunakan di iOS

Hal ini kadang-kadang berguna untuk mempertahankan proyek terpisah untuk aplikasi utama Anda dan Aset yang dapat diunduh yang akan digunakan. Namun, Anda harus mencatat bahwa semua scripts direferensikan oleh objek di AssetBundle harus hadir dalam permainan utama yang dapat dieksekusi. Proyek yang Anda gunakan untuk membuat AssetBundle harus memiliki iOS sebagai target build yang dipilih karena konten file AssetBundle tidak kompatibel antara iOS dan platform lainnya.

AssetBundles dibuat menggunakan editor scriptsSepotong kode yang memungkinkan Anda untuk membuat Komponen Anda sendiri, memicu peristiwa permainan, memodifikasi sifat komponen dari waktu ke waktu dan menanggapi input pengguna dengan cara apa pun yang Anda sukai. More info
Lihat di Glossary
- contoh sederhana diberikan di bawah ini:

using UnityEngine;
using UnityEditor;

public class ExportBundle : MonoBehaviour {
    [MenuItem ("Assets/Build AssetBundle From Selection - Track dependencies")]
    static void DoExport() {
        string str = EditorUtility.SaveFilePanel("Save Bundle...", Application.dataPath, Selection.activeObject.name, "assetbundle");
        if (str.Length != 0) {
            BuildPipeline.BuildAssetBundle(Selection.activeObject, Selection.objects, str, BuildAssetBundleOptions.CompleteAssets, BuildTarget.iPhone);
        }
    }
}

Anda harus menyimpan kode ini dalam file yang disebut ExportBundle dan menempatkannya di dalam folder yang disebut Editor (Anda hanya dapat membuat ini jika belum hadir dalam proyek). Script akan menambahkan item menu yang berjudul Membangun AsetBundle Dari Seleksi - Lacak ketergantungan pada menu Assets di editor.

Konten yang ingin Anda masukkan dalam bundel harus disiapkan dalam bentuk prefab. Pilih prefab dalam tampilan Proyek dan kemudian pilih Sitemap Membangun AsetBundle Dari Seleksi - Lacak ketergantungan (yaitu item menu yang ditambahkan oleh skrip EksporBundle). Perintah ini akan membawa dialog simpan di mana Anda dapat memilih nama dan lokasi file AssetBundle Anda.

Unduh aset Anda di iOS

Sitemap Apple dapat mengubah lokasi folder di mana Anda diizinkan untuk menulis data. Selalu periksa dokumentasi Apple terbaru untuk memastikan aplikasi Anda akan sesuai. Saran berikut benar pada awal 2018.Note: Apple may change the folder locations where you are permitted to write data. Always check the latest Apple documentation to be sure your application will be compliant. The following advice was correct as of early 2018.

AsetBundles dapat diunduh menggunakan WWW class dan sekali transfer selesai, aset tertutup dapat diakses. Cara yang disarankan untuk mengunduh AssetBundle adalah menggunakan LoadFromCacheOrDownload seperti yang ditunjukkan dalam sampel berikut:

IEnumerator GetAssetBundle() {
    WWW download;
    string url = "https://somehost/somepath/someassetbundle.assetbundle";

    while (!Caching.ready)
        yield return null;

    download = WWW.LoadFromCacheOrDownload(url, 0);

    yield return download;

    AssetBundle assetBundle = download.assetBundle;
    if (assetBundle != null) {
        // Alternatively you can also load an asset by name (assetBundle.Load("my asset name"))
        Object go = assetBundle.mainAsset;
            
        if (go != null)
            Instantiate(go);
        else
            Debug.Log("Couldn't load resource");    
    } else {
        Debug.Log("Couldn't load resource");    
    }
}

File bundel aset yang diunduh disimpan dalam folder Library dari kotak pasir aplikasi iOS dan memiliki set bendera Tidak ada Cadangan pada mereka. Ini berarti OS tidak akan menghapus file ini secara tidak sengaja dan file ini tidak akan didukung ke iCloud.

Jika Anda perlu memilih persis di mana file AssetBundle disimpan, Anda dapat menggunakan unduhan Web standar (yaitu hanya menggunakan konstror daripada LoadFromCacheOrDownload) dan kemudian menyimpan data yang diunduh pada disk menggunakan . API Anda dapat menyimpan file yang diperlukan ke folder Aplikasi.temporaryCachePath (dilanjutkan dalam Library/Caches yang secara teratur “dibersihkan” oleh OS) atau folder Aplikasi.persistentDataPath (dilanjutkan dalam Documents yang tidak dibersihkan oleh OS). Anda harus mengatur bendera Tidak ada Cadangan pada file ini dengan iOS.Device.SetNoBackupFlag untuk mencegah mereka didukung ke iCloud.

Sitemap Jika Anda tidak mengatur bendera Note:, aplikasi Anda dapat ditolak ketika Anda mengirimkannya ke Toko Aplikasi.Tidak ada Cadangan flag, your app may be rejected when you submit it to the App Store.

Anda dapat mengakses file yang tersimpan dengan membuat objek WWW dengan URL dalam bentuk file:///pathtoyourapplication/Library/savedassetbundle.assetbundle:-

string cachedAssetBundle = Application.temporaryCachePath + "/savedassetbundle.assetbundle"; 
System.IO.FileStream cache = new System.IO.FileStream(cachedAssetBundle, System.IO.FileMode.Create);
cache.Write(download.bytes, 0, download.bytes.Length);
cache.Close();

iOS.Device.SetNoBackupFlag(cachedAssetBundle);

Debug.Log("Cache saved: " + cachedAssetBundle);

Sitemap Anda dapat menguji pembacaan file tersimpan di folder Dokumen jika Anda mengaktifkan Note: (setting berbagi file untuk benar dalam UIFileSharingEnabled Anda memungkinkan Anda untuk mengakses folder Info.plist dari iTunes). Perhatikan bahwa isi dari folder Dokumen disimpan ke iCloud, sehingga Anda tidak boleh menggunakan lokasi ini untuk menyimpan AssetBundles dalam build akhir untuk dikirim. Lihat Documents dalam dokumentasi Apple iOS untuk rincian lebih lanjut.File System Basics in the Apple iOS documentation for further details.


  • 2018–06–14 Login
Membangun plug-in untuk iOS
App thinning