Netcode

Форум для самых маленьких, а так же тех, кому недосуг читать справку самостоятельно.

Re: Netcode

Сообщение Visochestvo 20 дек 2023, 01:48

Скрытый текст:
public GameObject testGO;

void Start()
{
if(isClient)
TestServerRpc(NetworkManager.LocalClientId);
}

[ServerRpc(RequireOwnership = false)]
public void TestServerRpc(ulong _localClientId, ServerRpcParams serverRpcParams = default)
{
GameObject newSpawn = Instantiate(Resources.Load("Prefabs/TestGo")) as GameObject;
newSpawn.GetComponent<NetworkObject>().SpawnWithOwnership(_localClientId);
ulong networkObjectId = newSpawn.GetComponent<NetworkObject>().NetworkObjectId;

ClientRpcParams clientRpcParams = new ClientRpcParams
{
Send = new ClientRpcSendParams
{
TargetClientIds = new ulong[] { _localClientId }
}
};

TestClientRpc(networkObjectId, clientRpcParams);
}

[ClientRpc]
public void TestClientRpc(ulong networkObjectId, ClientRpcParams clientRpcParams = default)
{
testGO = NetworkManager.SpawnManager.SpawnedObjects[networkObjectId].gameObject;
}

Правильно ли я понял?
Visochestvo
UNIверсал
 
Сообщения: 453
Зарегистрирован: 01 фев 2014, 14:11

Re: Netcode

Сообщение Saltant 20 дек 2023, 15:40

Передавать NetworkManager.LocalClientId в ServerRpc не нужно, айди и так придет в ServerRpcParams по дефолту.
В остальном ты пробовал код? Если работает значит работает. Но ты отправляешь ClientRpc конкретному игроку, а не всем т.к указываешь ClientRpcParams. Так же ты указываешь владельца SpawnWithOwnership тебе точно нужно что бы владелец этого объекта был конкретный игрок? В большинстве случаев просто вызывай Spawn.
В принципе у меня не возникало необходимости таким вот образом сообщать игрокам о спавне нового объекта, т.к я всегда переопределял метод OnNetworkSpawn в новом объекте, этот метод по дефолту срабатывает на всех клиентах которые видят этот объект, городить вызовы ClienRpc как в твоем примере, не требуется.
Я на Google Play _https://play.google.com/store/apps/developer?id=Saltant
Аватара пользователя
Saltant
Адепт
 
Сообщения: 2236
Зарегистрирован: 09 окт 2018, 16:40
Откуда: Химки
  • Сайт

Пред.

Вернуться в Почемучка

Кто сейчас на конференции

Сейчас этот форум просматривают: Yandex [Bot] и гости: 26