Объект порождения Unity от assetBundle выдает ошибку - PullRequest
0 голосов
/ 05 января 2019

Итак, я пытался использовать наборы ресурсов с системой Unet Unity. Всякий раз, когда я загружаю свой префаб игрока из пакета активов и устанавливаю его как playerPrefab в NetworkManager и пытаюсь присоединиться к игре, я получаю следующую ошибку: Не удалось создать объект сервера, вы забыли добавить его в NetworkManager? Это не происходит на игроке, на котором размещена игра (на сервере)

Когда я использую Resources.Load () для загрузки префаба моего плеера, он прекрасно работает, но я не могу использовать Resources.Load (). Регистрация префаба игрока в коде с использованием ClientScene.RegisterPrefab (myPlayerPrefab) также не будет работать.

Это то, что я использую для загрузки пакета ресурсов и получения префаба для игрока: частный статический словарь загружен Assets = новый словарь ();

public static void LoadAssets()
{
    //Bundle: player
    LoadAssetBundle("player", Directory.GetCurrentDirectory() + "/Assets/Resources/AssetBundles/");
}
private static void LoadAssetBundle(string bundleName, string bundleUrl)
{
    AssetBundle currentBundle = AssetBundle.LoadFromFile(bundleUrl + bundleName);

    Object[] bundleAssets = currentBundle.LoadAllAssets();
    foreach(Object bundleAsset in bundleAssets)
    {
        loadedAssets.Add(bundleAsset.name, bundleAsset);
    }
}
public static Object GetAsset(string assetName)
{
    return loadedAssets[assetName];
}

И вот как я настроил свой префаб игрока в NetworkManager: networkManager.playerPrefab = AssetHandler3.GetAsset ("Player") как GameObject;

Я хотел бы иметь возможность использовать assetBundles для установки моего playerPrefab в NetworkManager без получения ошибки, что серверу не удалось создать объект. Если это невозможно, у меня есть другой способ сделать эту работу, но мне нужен способ получить префаб по пути без использования Resources.Load ();

Заранее спасибо!

...