Fungsi Spawn Khusus
Sinchronisasi negara

Network Authority

Important: UNet adalah solusi yang diuraikan, dan Solusi Multiplayer baru dan NetworkingSistem Unity yang memungkinkan game multiplayer di jaringan komputer. More info
Lihat di Glossary
(Netcode untuk GameObjects) sedang berkembang. Untuk informasi lebih lanjut dan langkah selanjutnya melihat informasi di .

Server dan klien dapat mengelola perilaku GameObjectObjek mendasar dalam adegan Unity, yang dapat mewakili karakter, props, pemandangan, kamera, waypoints, dan banyak lagi. Fungsi GameObject didefinisikan oleh Komponen yang melekat padanya. More info
Lihat di Glossary
. Konsep “penulis” mengacu pada bagaimana dan di mana GameObject dikelola.

Server Authority

Keadaan default otoritas dalam permainan berjaring Unity menggunakan HLAPI adalah bahwa Server memiliki wewenang atas semua GameObjects yang tidak mewakili pemain. Ini berarti - misalnya - server akan mengelola kontrol semua item yang dapat dikumpulkan, platform bergerak, NPC - dan bagian lain dari permainan Anda yang dapat berinteraksi dan pemain GameObjects memiliki wewenang pada klien pemilik mereka (meaning klien mengelola perilaku mereka).

otoritas lokal

otoritas lokal (kadang disebut sebagai otoritas klien) berarti klien lokal memiliki kontrol otoritatif atas GameObject jaringan tertentu. Ini bertentangan dengan state default yang merupakan server yang memiliki kontrol otoritatif atas GameObject jaringan.

Selain isLocalPlayer****, Anda dapat memilih untuk membuat pemain GameObjects memiliki " otoritas lokal". Ini berarti bahwa pemain GameObject pada klien pemiliknya bertanggung jawab atas (atau memiliki wewenang atas) itu sendiri. Ini sangat berguna untuk mengendalikan gerakan; itu berarti bahwa setiap klien memiliki wewenang atas bagaimana pemain mereka sendiri GameObject sedang dikendalikan.

Untuk mengaktifkan otoritas pemain lokal pada komponen GameObject, centang kotak centang komponen Local Player Authority jaringan. Komponen Transformator Jaringan menggunakan pengaturan “authority” ini, dan mengirimkan informasi pergerakan dari klien ke klien lain jika ini ditetapkan.

Lihat dokumentasi Referensi API Scripting pada NetworkIdentityKomponen Jaringan yang memungkinkan Anda untuk menetapkan identitas ke GameObject Anda untuk jaringan untuk mengenalinya sebagai GameObject Pemain Lokal atau Server Hanya GameObject. More info
Lihat di Glossary
dan localPlayerAuthority untuk informasi tentang menerapkan otoritas pemain lokal melalui script.

This image shows the Enemy object under server authority. The enemy appears on Client 1 and Client 2, but the server is in charge of its position, movement, and behavior
Gambar ini menunjukkan objek Enemy di bawah otoritas server. musuh muncul di Klien 1 dan Klien 2, tetapi server bertanggung jawab atas posisi, gerakan, dan perilakunya

Gunakan properti WordPress.org untuk mengetahui apakah GameObject memiliki otoritas lokal (juga dapat diakses pada NetworkBehaviour untuk kenyamanan). Non-player GameObjects memiliki wewenang pada server, dan pemain GameObjects dengan localPlayerAuthority set memiliki wewenang pada klien pemilik mereka.

Otoritas Lokal (Client) untuk Non-Player GameObjects

Mungkin untuk memiliki otoritas klien atas GameObjects non-pemain. Ada dua cara untuk melakukan ini. Satu adalah untuk memijat GameObject menggunakan WordPress.org, dan melewati koneksi jaringan klien untuk mengambil kepemilikan. Yang lain adalah untuk menggunakan WordPress.org dengan koneksi jaringan klien untuk mengambil kepemilikan.

Menetapkan wewenang kepada klien menyebabkan Unity untuk memanggil OnStartAuthority() pada setiap NetworkBehaviour pada GameObject, dan menetapkan hasAuthority** property to true. On other clients, the hasAuthority **property tetap palsu. Non-player GameObjects dengan otoritas klien dapat mengirim commands, seperti pemain dapat. commands ini dijalankan pada kasus server GameObject, bukan pada pemain yang terkait dengan koneksi.

Jika Anda ingin non-pemain GameObjects untuk memiliki otoritas klien, Anda harus mengaktifkan localPlayerAuthority on komponen Identitas Jaringan mereka. Contoh di bawah ini memijat Kewenangan GameObject dan menetapkan kepada klien pemain yang memijatnya.

[Command]
void CmdSpawn()
{
    var go = (GameObject)Instantiate(otherPrefab, transform.position + new Vector3(0,1,0), Quaternion.identity);
    NetworkServer.SpawnWithClientAuthority(go, connectionToClient);
}

Properti Konteks Jaringan

Kelas NetworkBehaviour mengandung sifat yang memungkinkan 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
untuk mengetahui konteks GameObject jaringan setiap saat.

  • isServer - true jika GameObject adalah pada server (atau host) dan telah ditidur.

  • isClient - true jika GameObject adalah pada klien, dan diciptakan oleh server.

  • Login Login - true jika GameObject adalah pemain GameObject untuk klien ini.

  • hasAuthority - true jika GameObject dimiliki oleh proses lokal

Untuk melihat properti ini, pilih GameObject Anda ingin memeriksa, dan di jendela InspectorJendela Unity yang menampilkan informasi tentang Pengaturan GameObject yang dipilih saat ini, aset atau proyek, memungkinkan Anda untuk memeriksa dan mengedit nilai. More info
Lihat di Glossary
, lihat jendela pratinjau untuk komponen scripting NetworkBehaviour. Anda dapat menggunakan nilai properti ini untuk mengeksekusi kode berdasarkan konteks di mana script berjalan.

Fungsi Spawn Khusus
Sinchronisasi negara