visibilitas jaringan
Adegan GameObjects

Mengkustomisasi visibilitas jaringan

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 .

Komponen built-in Jaringan Proximity Checker adalah komponen bawaan bawaan untuk menentukan visibilitas jaringan 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
. Namun, ini hanya menyediakan cek berbasis jarak. Kadang-kadang Anda mungkin ingin menggunakan jenis lain dari cek visibilitas, seperti aturan berbasis grid, tes tampilan baris, tes jalur navigasi, atau jenis tes lainnya yang sesuai dengan permainan Anda.

Untuk melakukan ini, Anda dapat menerapkan ekuivalen khusus Anda dari Jaringan Proximity Checker. Untuk melakukan itu, Anda perlu memahami bagaimana Jaringan Proximity Checker bekerja. Lihat dokumentasi tentang in-editor Proksisitas Jaringan Komponen Checker, dan NetworkProximityChecker API.

The Network Proximity Checker diimplementasikan menggunakan public visibility interface of Unity's Multiplayer HLAPI. Menggunakan antarmuka yang sama ini, Anda dapat menerapkan segala macam aturan visibilitas yang Anda inginkan. Setiap 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
melacak set pemain yang terlihat. Para pemain bahwa GameObject Jaringan terlihat disebut "observers" dari JaringanIdentitas.

The Network Proximity Checker memanggil RebuildObservers ** **method pada Komponen Identitas Jaringan pada interval tetap (set menggunakan nilai "Vis Update Interval" dalam inspektur), sehingga set GameObjects yang dapat diwujudkan jaringan untuk setiap pemain diperbarui karena mereka bergerak di sekitar.

Pada kelas NetworkBehaviour ** ** (yang mana skrip berjaring Anda berasal), ada beberapa fungsi virtual untuk menentukan visibilitas. Ini adalah:

  • OnCheckObserver - Metode ini disebut pada server, pada setiap GameObject jaringan ketika pemain baru memasuki permainan. Jika kembali benar, pemain ditambahkan ke pengamat objek. Metode NetworkProximityChecker melakukan pemeriksaan jarak sederhana dalam implementasi fungsi ini, dan menggunakan Physics.OverlapSphere() untuk menemukan pemain yang berada dalam jarak visibilitas untuk objek ini.

  • OnRebuildObservers - Metode ini disebut pada server ketika RebuildObservers divoked. Metode ini mengharapkan set pengamat untuk diisi dengan pemain yang dapat melihat objek. JaringanServer kemudian menangani pengiriman pesan ObjectHide dan ObjectSpawn berdasarkan perbedaan antara set visibilitas lama dan baru.

Anda dapat memeriksa apakah GameObject yang diberikan adalah pemain dengan memeriksa apakah NetworkIdentity memiliki Login Login yang valid. Contoh:


    var hits = Physics.OverlapSphere(transform.position, visRange);
    foreach (var hit in hits)
    {
        // (if a GameObject has a connectionToClient, it is a player)
        var uv = hit.GetComponent<NetworkIdentity>();
        if (uv != null && uv.connectionToClient != null)
        {
            observers.Add(uv.connectionToClient);
        }
    }
visibilitas jaringan
Adegan GameObjects