Proyek Unity ini berisi eksplorasi MultiSet SDK dengan sample scene (multiplayer dan on-device localization). Repo ini cocok sebagai basis belajar, percobaan, dan kolaborasi.
- Engine: Unity 6000年3月14日f1
- SDK utama: MultiSet Unity SDK
- Fitur yang tampak: multiplayer sample, on-device localization, AR (ARCore)
Assets/Scenes/scene proyek (default: SampleScene)Assets/Samples/MultiSet-SDK/sample resmi dari MultiSet SDKPackages/manifest.jsondaftar paket UnityProjectSettings/pengaturan proyek Unity
- Buka Unity Hub.
- Add proyek ini dari folder repo.
- Gunakan Unity 6000年3月14日f1.
- Buka scene di
Assets/Scenes/SampleScene.unity. - Tekan Play.
- Hindari meng-commit folder
Library/danTemp/(sudah diabaikan oleh .gitignore). - Jika menambah package, commit perubahan di
Packages/manifest.jsondanPackages/packages-lock.json. - Jika menambah scene atau asset baru, pastikan
.metaikut ter-commit.
Bagian ini menjelaskan langkah-langkah yang harus dilakukan sebelum menjalankan demo, terutama jika environment berubah (misalnya berpindah jaringan WiFi).
File: Assets/Speech Recognition/OllamaConnector.cs
Field: ollamaHost (bisa diubah via Inspector atau langsung di script)
Ollama berjalan di laptop/PC sebagai server lokal. HP Android berkomunikasi ke Ollama melalui WiFi. Karena kebanyakan jaringan menggunakan DHCP (IP berubah-ubah), IP laptop bisa berubah setiap kali konek ulang ke WiFi.
Langkah:
- Cek IP laptop saat ini: buka terminal, ketik
ipconfig(Windows) atauifconfig(Mac/Linux) - Cari alamat IPv4 di adapter WiFi (contoh:
192.168.18.150) - Di Unity Inspector, pilih GameObject yang memiliki komponen
OllamaConnector - Ubah field Ollama Host ke IP terbaru
- Pastikan HP dan laptop berada di jaringan WiFi yang sama
Sebelum demo, pastikan Ollama sudah berjalan di laptop:
# Jalankan model llama3.2 (akan otomatis download jika belum ada) ollama run llama3.2 # Atau untuk menjalankan sebagai server background: ollama serve
Pastikan port default 11434 tidak terblokir oleh firewall. Untuk testing cepat:
curl http://localhost:11434/api/generate -d '{"model":"llama3.2:latest","prompt":"test","stream":false}'Unity Editor menyediakan tool otomatis untuk menempelkan komponen POIData ke semua child GameObject di bawah root POI.
Langkah:
- Buka Unity Editor
- Klik menu Tools > POI > Auto Attach POIData
- Tool akan scan semua children di bawah root POI dan menambahkan komponen
POIDatajika belum ada - Setelah selesai, isi field
poiName,kategori, dansinonimdi setiap POIData via Inspector
Langkah step-by-step:
- Di Hierarchy, cari atau buat GameObject parent bernama "POIs" (atau nama lain yang sudah di-assign ke
poiRootdi POIManager) - Klik kanan pada "POIs" > Create Empty untuk membuat child GameObject baru
- Beri nama sesuai lokasi (contoh: "BAAK", "Toilet Lt2", "Lab Teori 201")
- Posisikan GameObject ke lokasi yang benar di scene (sesuai peta indoor)
- Pilih GameObject tersebut, klik Add Component > cari POIData
- Isi field berikut di Inspector:
- Poi Name: Nama resmi POI (contoh: "BAAK"). Jika kosong, akan pakai nama GameObject
- Kategori: Kategori POI (contoh: "layanan", "toilet", "ruangan", "kantin")
- Sinonim: Klik + untuk menambah alias/nama lain. Contoh untuk BAAK: "biro akademik", "administrasi akademik"
- Pastikan komponen POI dari MultiSet SDK juga terpasang di GameObject yang sama (agar navigasi SDK berfungsi)
Pilih GameObject yang memiliki komponen NavigationAdapter, lalu isi field berikut:
| Field | Yang Harus Di-Assign | Keterangan |
|---|---|---|
| Navigation Controller | Drag komponen NavigationController dari MultiSet SDK |
Untuk memanggil navigasi via SendMessage |
| Set Poi Method Name | SetPOIForNavigation (default) |
Nama method di NavigationController |
| Navigation UI Controller | Drag komponen NavigationUIController |
Untuk menampilkan progress slider |
| Start Navigation UI Method Name | ClickedStartNavigation (default) |
Nama method di NavigationUIController |
| Destination Select UI | Drag panel UI daftar destinasi (opsional) | Akan disembunyikan setelah navigasi mulai |
| On Navigate To Transform/Position/Name | Wire ke handler yang sesuai | Event alternatif jika tidak pakai SendMessage |
| On Navigation Failed | Wire ke UI error handler | Ditampilkan saat navigasi gagal |
Tip
Tips: Klik kanan pada komponen NavigationAdapter di Inspector > Validate Wiring untuk mengecek apakah semua referensi sudah benar.
File Assets/VoiceInput/NavMeshObstacleHelper.cs adalah pola/pattern untuk obstacle dinamis yang akan diintegrasikan dengan deteksi kerumunan dari backend YOLO (/api/human).
Cara menggunakan:
- Buat GameObject baru di scene untuk merepresentasikan area kerumunan
- Tambahkan komponen NavMeshObstacleHelper (NavMeshObstacle akan otomatis ditambahkan)
- Script akan otomatis mengkonfigurasi carving pada NavMeshObstacle
- Di masa depan, data dari YOLO backend akan memanggil
SetObstacleSize()danSetObstacleActive()untuk mengupdate obstacle secara real-time
Note
Catatan: Pendekatan NavMeshObstacle carving dipilih karena lebih ringan dibanding full NavMesh rebaking, dan cukup akurat untuk bounding box kerumunan.
- Jika scene kosong atau error, reimport project (Right click folder proyek > Reimport All).
- Jika package MultiSet tidak terdownload, cek koneksi dan re-open Unity.
Jika ada pertanyaan, buat issue atau diskusikan via chat tim.