Pelatihan
Jalur pembelajaran
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization
Browser ini sudah tidak didukung.
Mutakhirkan ke Microsoft Edge untuk memanfaatkan fitur, pembaruan keamanan, dan dukungan teknis terkini.
Selamat datang di kerangka kerja Pengikatan dan Tema Data MRTK3. Kerangka kerja ini dirancang untuk memudahkan pembuatan elemen visual yang dapat diisi dan diperbarui secara dinamis pada runtime berdasarkan data yang disediakan dari satu atau beberapa sumber data.
Pengikatan data adalah proses yang membuat koneksi antara UX (tampilan) aplikasi dan data yang sedang disajikan (model). Misalkan pengikatan memiliki pengaturan yang benar dan data menyediakan pemberitahuan yang tepat; ketika data mengubah nilainya, elemen yang terikat ke data mencerminkan perubahan secara otomatis.
Kerangka kerja pengikatan data populer:
Untuk informasi selengkapnya, lihat gambaran umum pengikatan data - WPF.NET
Saat ini didukung:
Selain apa yang sudah tersedia, prioritas utama untuk lebih banyak kemampuan meliputi:
Keypath yang Diselesaikan Sepenuhnya - Keypath lengkap dan absolut yang memetakan ke satu objek tertentu di Sumber Data. Untuk item dalam koleksi, ini adalah kombinasi keypath yang diselesaikan sepenuhnya untuk satu entitas koleksi dan keypath relatif (lokal) untuk satu elemen data dari entitas pengumpulan tersebut.
Keypath Mapper - Pemeta namespace opsional antara keypath lokal dan nama bidang Sumber Data (misalnya "tautan" <-> "URL").
Tema - Sumber Data yang menyediakan sekumpulan berbagai aset dan gaya yang diperlukan untuk mencapai estetika visual tertentu.
Item Placer - Pendamping DataConsumerCollection yang bertanggung jawab untuk menempatkan item yang terlihat ke dalam adegan.
Kumpulan Objek Data - Prefab siaga yang dibuat dan siap diisi dengan data untuk navigasi daftar GC rendah.
Daftar Virtualisasi - Kemampuan untuk mengisi, menyajikan, dan menavigasi daftar berukuran besar secara sewenang-wenang.
Prefetch Prefetch Prediktif - Pra-pengambilan data dan mengisi prefab pengumpulan untuk item yang mungkin segera terlihat dengan cara menggulir/penomoran halaman.
Sumber data adalah sekumpulan data terkelola dari jenis dan kompleksitas arbitrer yang dapat digunakan untuk mengisi tampilan data melalui konsumen data. Data yang dikelola oleh sumber data bisa statis atau dinamis. Setiap perubahan pada item data akan dilaporkan kepada konsumen data apa pun yang telah mendaftar untuk menerima pemberitahuan perubahan.
Antarmuka sederhana yang memiliki satu metode untuk mengambil sumber data. Ini dirancang untuk memungkinkan komponen pembuatan skrip MonoBehavior ditemukan secara otomatis dalam hierarki objek game oleh komponen konsumen data. Tidak perlu mengimplementasikan sumber data langsung pada objek game itu sendiri. Ini berguna ketika MonoBehaviour yang ada harus berasal dari kelas lain dan beberapa warisan mencegah turunan dari DataSourceGOBase. Ini juga memungkinkan lebih banyak kode untuk tidak memiliki dependensi Unity.
DataSourceProviderSingleton
MonoBehaviour memungkinkan untuk menentukan sumber data yang dapat ditemukan secara otomatis meskipun tidak dalam hierarki GameObject yang sama dengan DataConsumers yang ingin mendengarkannya. Cukup letakkan DataSourceProviderSingleton
di mana saja di adegan dan isi Data Sources
properti dengan sumber data apa pun yang akan ditemukan oleh konsumen data. Atau, konsumen data akan memandu orang tua mereka untuk menemukan sumber data yang sesuai, yang menyiratkan bahwa Anda dapat menempatkan sumber data yang menyediakan data yang diinginkan di mana saja dalam rantai induk konsumen data tersebut.
Jalur kunci adalah mekanisme untuk mengidentifikasi informasi apa pun secara unik dalam sumber data.
Meskipun jalur kunci dapat menjadi pengidentifikasi unik per item data, implementasi saat ini menggunakan penentu yang dapat dibaca pengguna logis yang menunjukkan posisi navigasi data yang menarik relatif terhadap seluruh himpunan data terstruktur. Ini dimodelkan pada konsep daftar, kamus, dan primitif Javascript. Jalur kunci secara sintetis mengoreksi pernyataan Javascript untuk mengakses data yang dapat diwakili dalam JSON. Keuntungan dari pendekatan ini adalah berkorelasi dengan baik dengan JSON dan XML. Ini adalah dua cara yang paling lazim untuk mentransfer informasi dari layanan backend.
Contoh jalur kunci:
Mengingat bahwa jalur kunci adalah string arbitrer tanpa taksonomi yang diperlukan, penentu data aktual bisa menjadi metode apa pun untuk menjelaskan data apa yang akan diambil. XPath XML adalah contoh skema jalur kunci yang layak yang akan berfungsi dengan sumber data. Selama jalur kunci yang disediakan oleh konsumen data konsisten dengan keypath yang diharapkan oleh sumber data, semuanya akan berfungsi. Selain itu, Key Path Mappers dapat diimplementasikan untuk menerjemahkan antara skema yang berbeda.
Menyelesaikan jalur kunci berarti menggabungkan dua keypath:
Hal ini memungkinkan untuk memperlakukan subset data sewaktu-waktu sehingga tidak masalah di mana dalam hierarki himpunan data yang lebih besar itu sebenarnya ada. Penggunaan paling penting dari kemampuan ini adalah menggambarkan data dari satu entri dalam daftar tanpa khawatir tentang entri mana dalam daftar yang dirujuk instans saat ini.
Karena jalur Kunci "diselesaikan sepenuhnya" selalu dihasilkan dan dikonsumsi oleh DataSource dan jarang atau tidak pernah dimodifikasi oleh DataConsumer atau komponen eksternal lainnya, jalur tersebut dapat memiliki struktur apa pun yang masuk akal untuk DataSource. Misalnya, jika ada prefab untuk menampilkan entri daftar untuk foto dan judulnya, tanggal diambil dan atribut lainnya, jalur kunci lokal di prefab mungkin terlihat seperti ini:
Jalur kunci yang diselesaikan sepenuhnya untuk satu entri prefab dalam daftar mungkin terlihat seperti ini:
Pemeta Jalur Kunci memungkinkan sumber data dan konsumen data menggunakan namespace layanan dan konvensi yang berbeda untuk jalur kunci dan masih bekerja sama.
Prefab untuk elemen yang umum digunakan, seperti slate untuk menunjukkan informasi kontak seseorang, dapat berisi bidang variabel yang dikelola oleh konsumen data. Untuk memungkinkan hal ini, pengidentifikasi yang digunakan untuk setiap aspek variabel prefab membutuhkan cara untuk memetakan ke pengidentifikasi untuk datum yang benar dalam sumber data yang akan, dalam setiap penggunaan prefab, menentukan konten elemen variabel tersebut. Pemeta Jalur Kunci memungkinkan hal ini.
Prefab dapat digunakan dengan sumber data yang berbeda di mana data disimpan dalam struktur organisasi yang berbeda dan menggunakan nama bidang. Untuk menggunakan prefab templat dengan setiap sumber data, Pemeta Jalur Kunci dapat menyelesaikan perbedaan apa pun dalam cara data diatur.
Objek yang tahu cara menggunakan informasi yang dikelola oleh sumber data dan menggunakan data tersebut untuk mengisi tampilan data.
Konsumen Data dapat mendaftar dengan sumber data untuk diberi tahu tentang perubahan apa pun pada item data yang ada di jalur kunci tertentu dalam himpunan data. Setiap kali data yang ditentukan telah berubah (atau dicurigai telah berubah), Konsumen Data akan diberi tahu.
Pengumpulan Konsumen Data memiliki kemampuan tambahan untuk mengelola daftar item serupa. Daftar ini bisa menjadi seluruh himpunan data yang dikelola oleh sumber data, atau hanya subset. Biasanya data untuk setiap item dalam daftar berisi jenis informasi yang sama, tetapi ini bukan persyaratan. Sumber data dan konsumen data dapat mendukung daftar berlapis, seperti daftar kata kunci yang terkait dengan setiap foto dalam daftar foto yang terkait dengan setiap orang dalam daftar kontak. Keypath untuk kata kunci akan relatif terhadap foto, dan keypath untuk foto akan relatif terhadap orang tersebut, dan keypath orang tersebut akan relatif terhadap daftar induk terdekat, atau akar himpunan data.
Saat memproses koleksi, keypath yang diselesaikan dengan benar untuk entri tertentu dalam koleksi ditetapkan ke setiap konsumen data yang ditemukan di prefab yang dibuat untuk setiap item koleksi. Itu kemudian digunakan untuk sepenuhnya menyelesaikan jalur kunci untuk data tampilan relatif (lokal) dalam prefab tersebut.
Konsumen data koleksi memerlukan sarana untuk mengisi pengalaman pengguna dengan daftar elemen visual berulang, seperti apa yang mungkin ditemukan dalam daftar produk, foto, atau kontak yang dapat digulir. Ini dicapai dengan menetapkan placer item ke konsumen data pengumpulan. Placer item ini adalah logika tha tahu cara meminta item daftar, menerima prefab yang telah diisi dengan data variabel, dan kemudian menyajikannya kepada pengguna, biasanya dengan memasukkannya ke dalam daftar yang dikelola oleh komponen tata letak UX untuk daftar.
Tema menggunakan semua pipa sumber data dan konsumen data. Dimungkinkan untuk tema hierarki GameObjects apakah itu statis atau secara dinamis terikat data ke sumber data lain. Ini memungkinkan pengikatan data dan tema diterapkan dalam kombinasi. Bahkan dimungkinkan untuk tema data yang berasal dari sumber data lain.
Tema adalah kemampuan untuk mengubah estetika visual banyak elemen UX sekaligus. Biasanya, semua data yang diperlukan untuk menentukan tema disediakan oleh satu Sumber Data seperti Objek yang Dapat Ditulis. Anda juga dapat menyediakan data tema sesuai kebutuhan atau dibagi menjadi grup logis berdasarkan tujuannya.
Pengikatan data dan Tema dapat ada bersama untuk satu elemen UX. Setiap elemen UX individual dapat bertema dan terikat data secara bersamaan. Dalam skenario ini, alur umumnya adalah bahwa datum yang berasal dari DataSource digunakan untuk mendapatkan keypath tema yang benar. Keypath ini kemudian digunakan untuk mengambil objek dari Tema Sumber Data, biasanya profil ScriptableObject, tetapi berpotensi sumber data apa pun yang dapat menyelesaikan keypath.
Untuk menyederhanakan konfigurasi tema dan pengikatan data, Anda dapat membuat profil pengikatan yang diproses oleh BindingConfigurator pada waktu instansiasi.
BindingConfigurator
Profil Pengikatan untuk menentukan aset dalam prefab yang akan ditemakan dan mengaitkan elemen data terikat dan elemen yang dapat di-tema dengan Keypaths. Kemudian menambahkan yang sesuai DataConsumers
untuk mengikat elemen visual ini ke pemilih Keypaths yang benar yang akan digunakan untuk mereferensikan data tertentu dalam satu atau beberapa DataSources
, yang biasanya berada di luar prefab itu sendiri.DataSource
yang berisi data untuk setiap Keypath yang diidentifikasi di Profil Pengikatan.ThemeProvider
Skrip pembantu memudahkan penggunaan ScriptableObject sebagai DataSource
untuk tema.MRTK_UX_ThemeProfile
ScriptableObject yang terikat dengan DataSourceReflection
ThemeProvider
di .Sumber data yang disematkan sesuai dalam dua situasi:
Ini dapat mengubah struktur atau kelas C# apa pun menjadi DataSource
dengan menggunakan pantulan untuk memetakan keypath ke bidang, properti, kelas berlapis, array, daftar, atau kamus. Ini dapat dikaitkan dengan Unity ScriptableObject atau struct C# atau kelas lain di mana data tema ada. Objek yang dibuat yang berisi data dapat disuntikkan dependensi dan diubah saat runtime.
Jika data ada sebagai json
teks, maka ini mengelola keypath pemetaan ke json
DOM. Aset biner dapat diambil dari Sumber Daya Unity, StreamingAssets, atau bahkan URL yang diambil.
Ini adalah pilihan sederhana ketika daftar murni datar cukup baik untuk memenuhi kebutuhan, dan untuk prototipe cepat. Semua aset tema didukung termasuk teks, aset Unity (misalnya, Materi, Sprite, dan Gambar), Sumber Daya, StreamingAssets, atau bahkan dapat diambil secara eksternal melalui URL.
Sumber data kustom apa pun yang mengimplementasikan antarmuka atau turunan langsung IDataSource
dari DataSourceBase
atau DataSourceGOBase
dapat digunakan untuk memenuhi kebutuhan kustom.
Kontrol UXComponents standar yang disediakan dalam paket UXComponents semuanya dikonfigurasi untuk mendukung tema. Ini dimatikan secara default, tetapi mudah diaktifkan.
Setiap kontrol, biasanya di GameObject paling atas dari prefab root, memiliki skrip yang disebut UXBindingConfigurator. Skrip ini, jika diaktifkan, akan menarik skrip pengikatan data yang diperlukan untuk mengaktifkan tema. Pastikan untuk mengimpor paket Pengikatan Data dan Tema juga.
Catatan di TextMeshPro StyleSheets: Saat ini tidak dimungkinkan untuk menggunakan StyleSheets untuk menata gaya TextMeshPro Normal . Gaya lain yang disertakan dalam Lembar Gaya Default TextMeshPro dapat digunakan. Contohnya menggunakan Isi untuk mengatasi batasan ini.
DataSourceThemeProvider
MonoBehaviour dapat digunakan untuk dengan mudah membuat ScriptableObject yang berisi semua referensi ke semua aset tema berfungsi sebagai sumber data. Ini ditunjukkan dalam adegan UXThemingExample.
ThemeSelector
MonoBehaviour memungkinkan untuk menentukan dan dengan mudah bertukar antara beberapa profil ScriptableObject. Contoh penggunaan ini adalah untuk memudahkan peralihan antara tema 'Gelap' dan 'Terang'. Tambahkan ScriptableObjects ke Theme Profiles
, biasanya pada waktu desain. Kemudian, pada waktu proses, ubah Current Theme
properti untuk mengubah tema.
Tema dicapai oleh Konsumen Data, terutama yang mewarisi dari DataConsumerThemeBase<T>, DataConsumerTextStyle dan kelas DataConsumer kustom yang dapat diterapkan pengembang untuk meningkatkan dukungan tema.
Kelas dasar DataConsumerThemeBase<T> menyediakan logika untuk menggunakan bilangan bulat atau datum kunci dari sumber data utama untuk mencari nilai akhir yang diinginkan dari database tema sekunder. Ini dicapai dengan memetakan data input ke keypath tema dan kemudian menggunakan keypath tema tersebut untuk mengambil nilai akhir. Ini memungkinkan elemen apa pun untuk terikat data dan bertema pada saat yang sama. Sebagai contoh, bayangkan bidang status dalam database dengan status Baru, Dimulai, dan Selesai yang diwakili oleh nilai 0, 1 dan 2. Masing-masing dapat diwakili oleh ikon Sprite. Untuk pengikatan data, nilai dari 0 hingga 2 digunakan untuk mencari sprite yang diinginkan. Dengan tema dan pengikatan data, profil tema menunjuk ke daftar tiga sprite yang benar dalam profil tema dan kemudian nilai dari 0 hingga 2 digunakan untuk memilih sprite yang benar dari daftar tersebut. Ini memungkinkan gaya ikon ini berbeda per tema.
Ketika tema runtime dan pengikatan data dinamis digunakan bersama-sama, kelas DataConsumerThemeHelper dapat ditentukan di kelas DataConsumerThemeBase-turunan untuk memberi tahu ketika tema telah berubah.
Penukaran tema saat runtime dilakukan dengan mengganti data pada sumber data tema dengan himpunan data baru yang ditata dalam topologi model objek data yang sama. DataSourceReflection dapat digunakan dengan ScriptableObjects di mana setiap profil mewakili tema. Untuk semua kontrol MRTK Core UX, profil tema adalah ScriptableObject bernama MRTK_UXComponents_ThemeProfile. Skrip pembantu ThemeProvider.cs memudahkan penggunaan ini atau profil ScriptableObject apa pun sebagai Sumber Data.
Metode penerapan tema ke data dinamis dapat secara otomatis terdeteksi dalam banyak kasus, atau dapat ditentukan secara eksplisit.
Saat datum digunakan untuk memilih item yang benar dari sumber data tema, prosesnya adalah:
Jenis data yang diharapkan dari datum yang digunakan untuk mengambil objek yang diinginkan dapat menjadi salah satu dari yang berikut ini:
Jenis Data | Deskripsi |
---|---|
AutoDetect | Datum dianalisis dan interpretasi yang benar secara otomatis terdeteksi. Lihat "Deteksi Otomatis Jenis Data" di bawah ini untuk informasi selengkapnya. |
DirectValue | Datum diharapkan dari jenis T yang diinginkan (misalnya, Bahan, Sprite, Gambar) dan digunakan secara langsung. |
DirectLookup | Indeks integral atau kunci string yang digunakan untuk mencari nilai yang diinginkan dari tabel pencarian lokal. |
StaticThemedValue | Objek bertema statis dari jenis yang benar diambil dari sumber data tema pada keypath tema tertentu. |
ThemeKeypathLookup | Indeks integral atau kunci string digunakan untuk mencari keypath tema yang diinginkan. |
ThemeKeypathProperty | Nama properti string yang akan ditambahkan ke keypath dasar tema yang disediakan dalam Tema. |
ResourcePath | Jalur sumber daya untuk mengambil nilai dari sumber daya Unity (dapat dimulai dengan "resource://"). |
FilePath | Jalur file untuk mengambil aset streaming Unity (dapat dimulai dengan "file://"). |
Autodetect menganalisis data yang diterima dan memutuskan metode pengambilan secara otomatis. Dalam tabel di bawah ini, T mewakili jenis yang diinginkan seperti Material, Sprite, Image. Autodetect dapat terjadi di dua tempat dalam proses:
Jenis Datum | Pertimbangan | Memiliki Pembantu Tema | Perilaku |
---|---|---|---|
T | n/a | Y/T | Digunakan langsung tanpa tema |
int | setiap string primitif integral atau Int32 yang dapat diurai | No | Diteruskan sebagai indeks untuk memperoleh GetObjectByIndex(n) untuk mengambil objek Nth jenis T. |
int | setiap string primitif integral atau Int32 yang dapat diurai | Ya | Indeks untuk mengambil keypath tema Nth dari pencarian lokal lalu mengambil objek bertema melalui deteksi otomatis. |
string | Format: "resource://{resourcePath}" | Y/T | resourcePath digunakan untuk mengambil Sumber Daya Unity |
string | Format: "file://{filePath} | Y/T | filePath digunakan untuk mengambil aset streaming |
string | Lainnya | No | Diteruskan sebagai kunci untuk mendapatkan GetObjectByKey() untuk mengambil objek jenis T yang cocok. |
string | Lainnya | Ya | Kunci untuk mengambil keypath tema yang cocok dari pencarian lokal lalu mengambil objek bertema melalui deteksi otomatis. |
Contoh untuk mengambil ikon status ber tema dari database yang berisi nilai status numerik:
Tema dapat mengaktifkan lembar gaya TMPro. "Pengaturan TMP" ScriptableObject menentukan di mana lembar gaya diharapkan berada di Sumber Daya. Ini adalah properti "Default Font Asset => Path".
Pastikan untuk menempatkan StyleSheets khusus aplikasi apa pun di sub-jalur sumber daya yang sama. Jika Anda ingin mengaturnya secara berbeda, pastikan untuk memperbarui "Pengaturan TMP" agar sesuai.
Jika Anda mengembangkan kontrol UX baru, relatif mudah untuk membuatnya mudah digunakan. Sejauh kontrol menggunakan Bahan, Sprite, dan aset lain yang sudah digunakan oleh kontrol UX lainnya, umumnya masalah penamaan berbagai objek game dengan cara yang dapat ditemukan.
Anda dapat mewarisi dan MRTK_UXCore_ThemeProfile
menambahkan lebih banyak bidang yang dapat digunakan, atau mengarahkan kontrol Anda ke ScriptableObject Anda sendiri. Tidak ada yang ajaib tentang yang disediakan; organisasi ScriptableObject akan menentukan keypath yang diperlukan untuk mengakses item data individual melalui C# Reflection.
Dengan menambahkan skrip BindingConfigurator.cs ke tingkat atas kontrol baru, Anda kemudian dapat menentukan BindingProfile ScriptableObject serial Anda sendiri. Ini akan memberikan nama GameObject yang diperlukan ke pemetaan KeyPath yang diperlukan untuk mengaitkan elemen yang dapat digunakan dengan data yang disediakan di profil tema. Skrip ini akan secara otomatis menambahkan komponen DataConsumerXXX yang diperlukan saat runtime untuk mendukung tema yang ingin Anda gunakan.
Untuk langkah pertama, lihat lebih dekat berbagai adegan contoh pengikatan data dalam paket Contoh MRTK dan lihat bagaimana berbagai sumber data MonoBehaviours dikonfigurasi. Secara umum, skrip pengikatan data hanya perlu ditempatkan pada GameObject tingkat tertinggi dari prefab atau sekumpulan elemen UX terkait.
Selain itu, untuk sebagian besar kasus penggunaan, nilai default berfungsi "di luar kotak", tetapi properti yang terekspos memberikan banyak fleksibilitas untuk kasus yang lebih canggih.
Catatan
Untuk mengaktifkan tema untuk komponen UX MRTK standar, MRTK_UX_DATABINDING_THEMING_ENABLED
simbol harus didefinisikan dalam Pengaturan Pemutar. Simbol ini memastikan tidak ada dampak performa saat tema tidak diperlukan.
Adegan ini yang menunjukkan berbagai skenario data variabel. Cukup muat adegan dan mainkan. Beberapa hal yang perlu diperhatikan:
Bidang Input Teks komponen TextMeshPro berisi variabel yang terlihat seperti ini: {{ firstName }}. Penanda ini digunakan langsung sebagai keypath lokal.
Objek game untuk sprite dan teks memiliki beberapa bentuk komponen Konsumen Data yang mengelola penerimaan data dan memperbarui tampilan.
Satu Konsumen Data dapat dibagikan oleh beberapa komponen dengan jenis yang sama dengan ditempatkan lebih tinggi dalam hierarki GO.
Konsumen Data dapat menemukan Sumber Datanya sendiri selama berada di objek game yang sama atau lebih tinggi dalam hierarki GO.
Objek game induk memiliki komponen Sumber Data yang menyediakan data untuk semua objek permainan anak yang menyajikan sekumpulan informasi variabel terkait.
Konsumen Data koleksi menentukan prefab yang sendiri berisi konsumen data yang akan digunakan untuk mengisi prefab tersebut dengan data variabel.
Contoh ini menggunakan tema untuk mengalihkan AudioClips antara set untuk Piano dan satu untuk Xylophone.
Contoh ini menggabungkan tema dan pengikatan data untuk menunjukkan tingkat baterai baik sebagai nilai numerik maupun sebagai ikon. Tema digunakan untuk memilih antara tema "mengisi dayanya" dan tema "tidak mengisi daya". Ini dirancang untuk memenuhi tujuan berikut:
ScriptableObject
tindakan sebagai profil tema.ScriptableObject
tindakan sebagai profil tema.Catatan
Struktur demo ini bukan contoh yang baik untuk menggabungkan tema dan pengikatan data. Dalam aplikasi produksi untuk pemisahan model dan tampilan yang tepat, status baterai aktual (tingkat dan pengisian daya) akan disediakan dalam sumber data terpisah daripada pencari sumber daya untuk sprite itu sendiri.
Contoh ini menunjukkan perubahan tema seluruh aplikasi dan juga menunjukkan penggunaan DataSourceGODictionary
sebagai sumber data untuk mengelola berbagai konten tekstual untuk ditampilkan di UX. Dalam skenario yang lebih komprehensif, jenis sumber data lain yang lebih fleksibel kemungkinan akan memberikan fleksibilitas yang diperlukan, seperti DataSourceReflection
atau DataSourceGOJson
.
Berikut adalah contoh sederhana untuk membantu Anda memulai dengan cepat:
{{ activity }}. It's {{ type }}.
Selamat. Anda telah membuat proyek Pengikatan Data pertama Anda dengan MRTK!
Sumber data menyediakan data untuk satu atau beberapa konsumen data. Datanya bisa apa saja: dihasilkan secara algoritma, dalam RAM, pada disk, atau diambil dari database pusat.
Semua sumber data harus menyediakan antarmuka IDataSource. Beberapa fungsionalitas dasar ditawarkan dalam kelas dasar yang disebut DataSourceBase
. Anda kemungkinan besar ingin berasal dari kelas ini untuk menambahkan fungsionalitas manajemen data tertentu khusus untuk kebutuhan Anda.
Untuk memungkinkan untuk menjatuhkan sumber data sebagai komponen ke objek game, objek dasar lain ada yang disebut DataSourceGOBase
di mana GO adalah singkatan Dari GameObject. Ini adalah MonoBehavior yang dapat dihilangkan ke GameObject sebagai Komponen. Ini adalah proksi tipis yang dirancang untuk mendelegasikan pekerjaan ke sumber data inti khusus non-Unity.
Sumber data dapat mengekspos kemampuan untuk memanipulasi data dalam Editor Unity. Jika demikian, kelas turunan dapat berisi semua logika sumber data, atau dapat memanfaatkan sumber data "stok", tetapi juga menambahkan bidang Pemeriksa atau cara lain untuk mengonfigurasi data.
Konsumen data mendapatkan pemberitahuan ketika data telah berubah lalu memperbarui beberapa aspek pengalaman pengguna, seperti teks yang ditampilkan dalam Komponen TextMeshPro.
Semua konsumen data harus menyediakan antarmuka IDataConsumer. Beberapa fungsionalitas dasar ditawarkan dalam kelas dasar yang disebut DataConsumerGOBase
, di mana GO adalah singkatan dari GameObject.
Sebagian besar pekerjaan konsumen data adalah menerima data baru dan kemudian menyiapkannya untuk presentasi. Ini mungkin semudah memilih prefab yang tepat, atau bisa berarti mengambil lebih banyak data dari layanan cloud seperti sistem manajemen konten.
Placer item pengumpulan data bertanggung jawab untuk mengelola bagian mana dari koleksi yang saat ini terlihat dan cara menyajikan koleksi yang terlihat, apakah koleksi tersebut adalah daftar statis kecil atau database rekaman jutaan raksasa.
Semua placer item harus menyediakan antarmuka IDataCollectionItemPlacer. Beberapa fungsionalitas dasar ditawarkan dalam kelas dasar yang disebut DataColletionItemPlacerGOBase
. Semua placer item harus berasal dari kelas ini.
DataSource
IDataNode
dengan DataSourceObjects.Pelatihan
Jalur pembelajaran
Use advance techniques in canvas apps to perform custom updates and optimization - Training
Use advance techniques in canvas apps to perform custom updates and optimization