Итак, я пытался использовать наборы ресурсов с системой 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 ();
Заранее спасибо!