Topik ini menjelaskan cara menggunakan Unity remote rendering.
Informasi latar belakang
Unity Render Streaming adalah solusi open-source dari Unity untuk merender model 3D berkualitas tinggi dan kompleks di cloud, lalu menampilkannya di perangkat seluler atau browser. Dengan meng-container-kan aplikasi Unity menggunakan Unity Render Streaming, Anda dapat merender frame di cloud dan mengalirkannya secara real time ke browser, sehingga memungkinkan skenario cloud gaming. Untuk informasi lebih lanjut tentang Unity Render Streaming, lihat UnityRenderStreaming.
Langkah 1: Kembangkan aplikasi Unity Render Streaming menggunakan Unity Editor
Topik ini menggunakan Unity Editor versi 2021.3.2f1c1 untuk Mac M1 Silicon sebagai contoh.
- Di Unity Editor, klik . Di pojok kiri atas, klik .
- Masukkan com.unity.renderstreaming@3.1.0-exp.2, lalu klik Add.
- Pada kotak dialog yang muncul, klik Yes untuk me-restart proyek.Setelah restart, paket Unity Render Streaming diimpor dan tersedia di halaman Package Manager.

- Di halaman Package Manager, pada bagian Samples, klik Import untuk mengimpor contoh resmi.Topik ini mengimpor contoh resmi (1,19 MB). Setelah pengimporan selesai, folder Assets diperbarui.

- Di pojok kiri atas halaman, klik . Atur Platform ke Windows, Mac, Linux, Target Platform ke Linux, dan Scenes ke WebBrowserInput. Klik Build dan beri nama build tersebut mac-linux.Setelah proses build selesai, struktur direktori file akan tampak seperti berikut:

- Di pojok kiri atas halaman, klik untuk mengunduh aplikasi server web.Selain mem-build aplikasi Unity, Anda juga harus menyiapkan server web yang sesuai agar browser dapat mengakses frame yang telah dirender. Topik ini menggunakan contoh resmi, sehingga Anda dapat langsung mengunduh server web resmi tersebut.Setelah pengunduhan selesai, aplikasi remote rendering Anda telah lengkap, mencakup file yang dapat dieksekusi Unity dan aplikasi server web. Untuk opsi implementasi lainnya terkait Render Streaming, lihat About Unity Render Streaming.
Langkah 2: Containerize dan deploy aplikasi
Eksperimen ini menggunakan lingkungan berikut:
- Kluster: Kluster ACK yang dikelola, versi 1.22.3-aliyun.1.
- Sistem operasi node pool: Alibaba Cloud Linux 2.1903.
- Tipe instance: ecs.gn6v-c8g1.2xlarge.
- Docker Engine: 19.3.15.
- Containerize aplikasi Unity dan server web-nya.
- Containerize aplikasi Unity. Untuk langkah-langkah detail, lihat Praktik Terbaik Aplikasi Grafis Linux.Pilih versi gambar dasar yang tepat. Untuk daftar versi yang tersedia, lihat Editor. Topik ini menggunakan ubuntu-2021.3.2f1-mac-mono-1.0.1 sebagai gambar dasar dan menginstal paket dependensi berikut: vulkan-util, libc++1, dan libc++abi1.
- Containerize server web.Proses containerisasi server web mengikuti praktik standar untuk aplikasi web. Berikut ini contoh Dockerfile:
FROM ubuntu:20.04 WORKDIR /run COPY webserver ./ CMD webserver -w
- Containerize aplikasi Unity. Untuk langkah-langkah detail, lihat Praktik Terbaik Aplikasi Grafis Linux.
- Buat dan deploy file YAML.
- Buat file bernama unity-demo.yaml dengan konten berikut.Setelah Anda membuat image aplikasi Unity dan server web, deploy ke kluster ACK Anda. Gunakan contoh YAML berikut sebagai referensi dan sesuaikan berdasarkan Praktik Terbaik Aplikasi Grafis Linux.
Tempatkan kedua container dalam satu Pod dan bagikan namespace jaringan. Demo Unity terhubung ke server web melaluiapiVersion: v1 kind: Pod metadata: name: unity-demo namespace: default spec: # Contoh server web Linux hanya mengekspos WebSocket pada 127.0.0.1. Agar browser dapat terhubung melalui WebSocket, gunakan mode host network dan akses host melalui EIP. hostNetwork: true nodeName: xxx containers: - image: xxx:xx name: unity command: ["/run/mac-linux/mac-linux.x86_64"] securityContext: privileged: true - image: xxx:xx name: webserver ports: - containerPort: 80 protocol: TCP restartPolicy: Always127.0.0.1:80menggunakan WebSocket. Server web mengekspos port 80 untuk menerima koneksi dari browser. - Jalankan perintah berikut untuk mendeploy Pod.
kubectl apply -f unity-demo.yaml
- Buat file bernama unity-demo.yaml dengan konten berikut.
Langkah 3: Akses layanan dan lihat hasil remote rendering
Di browser Anda, buka EIP:80 pada host, lalu klik VideoPlayer Sample. Hasilnya akan tampak seperti berikut:
Catatan Pengujian berulang menunjukkan bahwa performa real-time bergantung pada kondisi jaringan Anda. Saat jaringan stabil, tersendat jarang terjadi.