Создание экземпляров двух разных объектов игроков в сети

Я использую два разных объекта для игрока в сетевой многопользовательской игре. Два разных типа Gameobject будут созданы с помощью единства сетевого менеджера, но проблема только в single свойство playerprefab. Как я могу установить два разных объекта, даже если я пытался изменить их во время выполнения, но это дает мне ошибку.

Не удалось создать объект сервера, assetId = 4d293c8e162f3874b982baadd71153d2 netId = 1 UnityEngine.Networking.NetworkIdentity: UNetStaticUpdate ()

Не удалось создать объект сервера, assetId = 4d293c8e162f3874b982baadd71153d2 netId = 7 UnityEngine.Networking.NetworkIdentity: UNetStaticUpdate ()


person Muhammad Faizan Khan    schedule 27.10.2016    source источник


Ответы (1)


В документации UNetManager:

если вы хотите настроить способ создания игровых объектов игрока, вы можете переопределить эту виртуальную функцию. Этот код показывает пример реализации по умолчанию:

public virtual void OnServerAddPlayer(NetworkConnection conn, short playerControllerId)
{
    var player = (GameObject)GameObject.Instantiate(playerPrefab, playerSpawnPos, Quaternion.identity);
    NetworkServer.AddPlayerForConnection(conn, player, playerControllerId);
}

Вы можете изменить префаб внутри этого кода на префаб, который хотите создать.

Надеюсь, это поможет вам решить проблему выбора сборного дома.

person Mennolp    schedule 27.10.2016
comment
Событие OnserverAddPlayer не выполняется, и позволит ли это создать экземпляры различных объектов игрока? - person Muhammad Faizan Khan; 28.10.2016
comment
на самом деле, как вы решили этот подход, @MuhammadFaizanKhan ?! - person Fattie; 09.08.2018