CodeBlanks Logo Icon CodeBlanks

Meydan okuma 4: RPC çağrısı

Bir ServerRpc metodunu tanımlayan scripti yazarsın.

Meydan Okuma 4: ServerRpc Ağ Çağrıları

Yetkili sunucu (Authoritative Server) mimarisinde istemciler oyun durumunu doğrudan değiştiremez. Bir eylemi sunucuda tetiklemek için [ServerRpc] niteliği taşıyan metotlar kullanılır.

// Istemci tarafindan cagirilir, yalnizca sunucuda calisir
[ServerRpc]
public void RequestFireServerRpc(Vector3 direction) {
    SpawnProjectileOnServer(direction);
}

Netcode kurallarına göre metot adı mutlaka ServerRpc son eki ile bitmelidir.

Uygulama ServerRpc metot adı testi

Bir Start metodu tanımla. İçinde string rpcMetodu = "TakeDamageServerRpc"; tanımla ve konsola "Tetiklenen RPC: " + rpcMetodu yazdır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class RpcMethodTester : MonoBehaviour
{
    // Start icinde rpcMetodu tanimla ve yazdir
}

Örnek çözüm

Player.cs
using UnityEngine;

public class RpcMethodTester : MonoBehaviour
{
    void Start()
    {
        string rpcMetodu = "TakeDamageServerRpc";
        Debug.Log("Tetiklenen RPC: " + rpcMetodu);
    }
}

Beklenen çıktı

Tetiklenen RPC: TakeDamageServerRpc

Uygulama RPC istemci kimliği takibi

Bir Start metodu tanımla. İçinde int clientId = 1; tanımla ve konsola "Istemci kimligi: " + clientId yazdır.

Başlangıç kodu

Player.cs
using UnityEngine;

public class RpcClientTester : MonoBehaviour
{
    // Start icinde clientId tanimla ve yazdir
}

Örnek çözüm

Player.cs
using UnityEngine;

public class RpcClientTester : MonoBehaviour
{
    void Start()
    {
        int clientId = 1;
        Debug.Log("Istemci kimligi: " + clientId);
    }
}

Beklenen çıktı

Istemci kimligi: 1

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Netcode mimarisinde bir istemcinin sunucuda bir işlem tetiklemesini sağlayan RPC türü hangisidir?

  • ClientRpc
  • StaticRpc
  • ServerRpc Doğru cevap
  • BroadcastRpc

Açıklama: İstemciden sunucuya giden uzaktan çağrılar ServerRpc olarak tanımlanır.

2 ServerRpc fonksiyonu bildirimi

Soru
[____] public void SubmitScoreServerRpc(int score) {}
Cevap
[ServerRpc] public void SubmitScoreServerRpc(int score) {}

Açıklama: Sunucuda yürütülmesi istenen metotların başında '[ServerRpc]' niteliği yer alır.

3 Multiplayer RPC kavramları

Kavram Anlamı
ServerRpc İstemciden sunucuya çağrı yapan metot
ClientRpc Sunucudan istemcilere yayın yapan metot
RPC Uzaktan yordam çağırma mekanizması
Authoritative Server Oyun durumunu kesin yöneten sunucu

İleri seviye bölümündeki tüm dersler