Bagikan melalui


Konsep dasar pembuatan skrip cloud

Membaca gambaran umum Mesh Cloud Scripting dan Mesh Visual Scripting

Perbedaan antara Skrip Cloud Mesh dan MonoBehaviours

Ada beberapa perbedaan utama antara Mesh Cloud Scripting dan MonoBehaviours:

  • Cloud Scripting Services ditulis terhadap Mesh Cloud Scripting API (dibandingkan dengan Unity API).
  • Cloud Scripting Services berjalan di cloud dalam proses terpisah (dibandingkan dengan klien), dan efeknya secara otomatis disinkronkan ke semua klien yang terhubung.

Ringkasan Arsitektur

Untuk mengaktifkan Mesh Cloud Scripting, layanan aplikasi bernama Mesh Cloud Scripting Service disebarkan ke grup sumber daya Azure tertentu yang Anda sediakan. Cloud Scripting berjalan di back end Azure dan terdiri dari sekumpulan skrip C# server yang berjalan dalam kontainer dengan titik akhir yang disambungkan oleh klien. Dalam diagram di bawah ini, Anda dapat melihat bahwa ada dua klien yang terhubung ke Cloud Scripting Service. Cloud Scripting Service memiliki grafik adegan otoritatifnya sendiri (ditandai "A" dalam diagram). Cloud Scripting Service berinteraksi dengan grafik adegan ini melalui API grafik adegan Mesh Cloud Scripting.

Diagram Arsitektur Cloud Scripting.

Grafik adegan Mesh Cloud Scripting secara otomatis disinkronkan dari cloud ke semua klien yang terhubung. Setiap klien memiliki salinan grafik adegan Mesh Cloud Scripting yang identik (ditandai "B" pada diagram), yang tetap sinkron dengan versi cloud otoritatif. Ketika Mesh Cloud Scripting Service membuat perubahan pada grafik adegan di cloud, perubahan ini disebarluaskan ke salinan pada semua klien.

Pada setiap klien, runtime Unity Mesh bereaksi terhadap perubahan dalam instans klien grafik adegan Mesh Cloud Scripting dan memperbarui adegan Unity untuk mencerminkan statusnya. Meskipun API grafik adegan Mesh Cloud Scripting dan API grafik adegan Unity berbeda, mereka memetakan satu sama lain dan memiliki struktur yang sama atau serupa.

Mesh Cloud Scripting, Game Objects, dan Mesh Cloud Scripting Scene Graph

Objek yang akhirnya muncul dalam Peristiwa di aplikasi Mesh dapat dibagi menjadi dua kategori:

  1. Objek yang Anda tambahkan ke Lingkungan Anda di Unity.

  2. Objek yang Anda sesuaikan Acara Anda . Karena ini bukan bagian dari Lingkungan, Mesh Cloud Scripting tidak menyadarinya.

Membangun adegan

Untuk mengaktifkan Mesh Cloud Scripting, adegan Anda harus memiliki komponen Mesh Cloud Scripting .

Cuplikan layar komponen Mesh Cloud Scripting yang dilampirkan ke GameObject.

Komponen bertanggung jawab untuk mengelola skrip yang Anda buat dan ikat ke adegan Unity baik pada waktu edit maupun runtime di aplikasi Mesh. Mesh Cloud Scripting adalah teknologi mandiri tetapi memiliki integrasi yang ketat dengan Unity. Anda dapat menemukan instruksi untuk menambahkan Mesh Cloud Scripting GameObject dalam artikel bernama Buat proyek Cloud Scripting sederhana dan informasi lebih rinci tentang pembuatan skrip di bagian Panduan Programmer .

Grafik adegan Mesh Cloud Scripting terbatas pada GameObjects yang Anda tambahkan ke adegan di bawah GameObject yang berisi komponen Mesh Cloud Scripting. Meskipun Mesh Cloud Scripting tidak dapat langsung melihat hierarki adegan dari sisa adegan, itu dapat mengakses API yang disediakan aplikasi Mesh -misalnya, itu bisa mendapatkan daftar Pengguna di adegan atau bereaksi terhadap objek yang dipilih.

Komponen dan Grafik Adegan Pembuatan Skrip Cloud Mesh

Dalam diagram di bawah ini, perhatikan bahwa hierarki untuk Unity Scene dan Adegan Skrip Cloud Mesh identik. Simpul biru di bagian Unity Scene mewakili GameObjects; setiap GameObject memiliki TransformNode yang sesuai di Mesh Cloud Scripting Scene Graph. Ketika TransformNode diperbarui, itu menyebabkan transformasi objek game yang sesuai dengannya di Unity Scene untuk diperbarui ke nilai yang sama.

Hierarki Adegan Unity dan Mesh

MEsh Cloud Scripting API memiliki jenis yang memetakan hanya ke subset dari set lengkap Komponen Unity. Masih valid untuk membuat Unity Scene dengan komponen yang tidak dapat dipetakan oleh Mesh Cloud Scripting API; mereka hanya akan tidak terlihat oleh Mesh Cloud Scripting. Dalam diagram, komponen berwarna putih memiliki simpul yang sesuai dalam grafik adegan Mesh Cloud Scripting; komponen berwarna hijau tidak. Grafik adegan Mesh Cloud Scripting tidak memiliki simpul sistem partikel, jadi dalam contoh kami, komponen sistem partikel dalam adegan Unity tidak akan muncul di adegan Mesh Cloud Scripting yang sesuai. Namun, komponen di sekitarnya dan objek game pemiliknya ada di grafik adegan Mesh Cloud Scripting. Ini berarti bahwa Mesh Cloud Scripting akan dapat memindahkan sistem partikel di sekitar adegan dengan memindahkan objek game miliknya meskipun sistem partikel itu sendiri tidak terlihat oleh Cloud Scripting.

MESH Cloud Scripting API memungkinkan kloning simpul. Jika aplikasi membuat klon "A" (yang sesuai dengan simpul "A", GameObjectParent, di adegan Unity), ini akan mengkloning seluruh sub pohon GameParentObjecttermasuk sistem partikel Mesh Cloud Scripting tidak dapat melihat.

Penulisan Mesh Cloud Scripting

Instruksi terperinci tentang Mesh Cloud Scripting dapat ditemukan di artikel Membuat proyek Cloud Scripting sederhana dan Panduan Programmer . Di sini, kami memberikan gambaran singkat.

Proyek Unity umum yang berisi adegan dengan Mesh Cloud Scripting akan terlihat sebagai berikut pada disk (folder ditampilkan sebagai tebal):

  • Proyek Unity
    • Aset
      • Adegan
        • MyScene.unity
      • . MeshCloudScripting
        • MyScene
          • MyScene.csproj
          • Program.cs
          • scene.map
          • App.cs

Setiap adegan dalam proyek Unity Anda yang berisi komponen MeshCloudScripting memiliki folder yang sesuai dengan nama yang sama yang terkandung dalam ". Folder MeshCloudScripting" di direktori Aset Anda. Komponen Mesh Cloud Scripting membuat folder ini dan kumpulan file awalnya yang akan dikompilasi ke Cloud Scripting Service yang sepenuhnya berfungsi, meskipun kosong. Beberapa file awal ditunjukkan di atas. Program.cs berisi kode boilerplate yang mengurus:

  • mengonfigurasi IHostBuilder untuk meluncurkan Applayanan.

  • membangun instans IHost .

  • IHost menjalankan instans hingga selesai.

App.cs adalah kelas yang menghosting logika aplikasi Anda. Ini mengimplementasikan antarmuka IHostedService , sehingga memiliki dua titik masuk: StartAsync dan StopAsync. StartAsync dipicu sekali, ketika IHost siap untuk memulai App layanan. Juga, StopAsync dipicu ketika IHost sedang melakukan pematian yang anggun.

Representasi adegan

Perhatikan file scene.map dalam daftar di atas. Ini adalah detail internal tetapi berguna untuk dipahami. Saat dipicu secara manual di UI, atau saat adegan Unity diputar di Editor, komponen Mesh Cloud Scripting menulis file scene.map ke dalam folder Mesh Cloud Scripting yang sesuai. Ini adalah representasi adegan sebagai hierarki Adegan Skrip Cloud Mesh; jenis Unity dikonversi menjadi jenis Mesh Cloud Scripting. Saat Mesh Cloud Scripting Service disebarkan ke cloud, layanan ini tidak memerlukan adegan Unity asli untuk dijalankan. Sebaliknya, ini memuat file scene.map yang menentukan hierarki adegan awal. Ketika klien Mesh terhubung ke Mesh Cloud Scripting Service, klien menerima hierarki Mesh Cloud Scripting dan memperbarui adegan Unity-nya agar sesuai. Untuk mengizinkan ini, kami juga menyimpan ID dalam pengikatan Mesh Cloud Scripting yang digunakan untuk memetakan ke objek Unity yang sesuai di Adegan.

Catatan: Agar hal di atas berfungsi, file scene.map dan adegan Unity harus cocok. Jika karena alasan tertentu mereka tidak--misalnya, karena hasil kesalahan ekspor--ini akan terdeteksi dan klien Mesh Cloud Scripting Service dan Mesh tidak akan tersambung.

Menerbitkan Lingkungan dengan Mesh Cloud Scripting

Saat Anda menerbitkan Lingkungan dengan Mesh Cloud Scripting, Lingkungan dan Layanan Skrip Cloud Mesh akan diterbitkan ke Azure. Ini ditunjukkan pada diagram di bawah ini:

Mengunggah templat lingkungan dan Cloud Scripting ke cloud

Saat membuat perubahan pada adegan, Anda harus menekan Putar di Unity untuk mempratinjau adegan dengan Mesh Cloud Scripting Service yang baru dibuat dan dijalankan secara lokal. Kemudian terbitkan lingkungan yang dimodifikasi menggunakan Mesh Uploader. Penerbitan dijelaskan secara lebih rinci dalam membuat dan menerbitkan lingkungan Anda dan Memberikan detail Cloud Scripting untuk membuat dan menerbitkan artikel.

Autentikasi di Mesh Cloud Scripting Service

Cloud Scripting Service dapat menyimpan daftar siapa penggunanya. Setelah pengguna diautentikasi, Cloud Scripting Service memiliki pengidentifikasi persisten untuk pengguna di beberapa sesi.

Meskipun demikian, alur Auth di Mesh Cloud Scripting Service tidak memerlukan upaya tambahan dari ujung Anda. Ini sepenuhnya implisit dan para pihak yang terlibat bekerja untuk mendapatkan token dan memvalidasinya secara otomatis.

Berikut adalah pihak-pihak yang terlibat dalam alur Auth:

Toolkit Mesh: Sebagai alat di mana Cloud Scripting Services disebarkan ke cloud, Anda dapat memilih Service Mode cloud Scripting Service Anda menggunakan dalam memvalidasi token autentikasi. Ini dapat dilakukan di pengaturan Konfigurasi Lingkungan di antarmuka pengguna Pengunggah Mesh.

Microsoft Mesh Service: Bertanggung jawab untuk menerbitkan token. Tanpa token, pengguna tidak dapat berinteraksi dengan Cloud Scripting.

Microsoft Mesh: Titik masuk tentang cara pengguna berinteraksi dengan Mesh Cloud Scripting. Klien Microsoft Mesh bertanggung jawab untuk meminta token akses dari Microsoft Mesh Service atas nama pengguna.

Mesh Cloud Scripting Service: Memvalidasi token yang diterimanya dari permintaan sambungkan terhadap Microsoft Mesh Service lalu memilih pengidentifikasi pengguna persisten dari token.

Para pihak bekerja sama seperti yang diilustrasikan di bawah ini:

Alur Autentikasi

Langkah berikutnya