Синтаксис:
Используется csharp
[RPC]
void SpawnCharOnClient(NetworkPlayer player)
{
if(player == Network.player)
{
Network.Instantiate(playerprefab, new Vector3(0, 1.5f, 0), new Quaternion(0, 0, 0, 0), 0);
Network.DestroyPlayerObjects(Network.player);
}
}
void SpawnCharOnClient(NetworkPlayer player)
{
if(player == Network.player)
{
Network.Instantiate(playerprefab, new Vector3(0, 1.5f, 0), new Quaternion(0, 0, 0, 0), 0);
Network.DestroyPlayerObjects(Network.player);
}
}
Второй строчкой идет удаление созданного объекта, которое не работает (ну это для теста так сделано). Ошибок не выдает, но пишет, что No objects for the given player ID were deleted 1. Наверное надо как-то иначе удалять объекта.
Пробовал с помощью Network.Destroy, но там свои сложности. Если ему в качестве аргумента подавать view ID, то он такое впечатление, что всю сеть удаляет. А подать ему в качестве аргумента конкретный объект, который надо удалить не получается, так как нужен объект класса GameObject, а при создании получается просто Object. После приведения типов все равно не работает.
Вот такая проблема. И еще, созданный с помощью Network.Instantiate объект появляется не только во всех клиентах, но и в серверном приложении (для этого пришлось туда prefab закинуть). Это конечно же несуразица, не нужны на сервере эти объекты. Может быть есть другой способ организовать одновременное порождение объектов во всех клиентах?