Доступ к элементу в файле sharedassets.assets Unity программным способом в C # Mono - PullRequest
0 голосов
/ 04 ноября 2019

Я работаю над модом Cities: Skylines и хочу получить доступ к файлам sharedassets.assets, которые игра находится в папке Data, программно, чтобы получить сетку / префаб.

нашел инструмент под названием Unity Assets Bundle Extractor (UABE), который может открывать эти файлы и извлекать меш.

Есть ли способ извлекать сетку из общих ресурсов программным способом с помощью кода C #, как это делает UABE?

Я просматривал документацию Unity, но пока только видел эту страницу (не уверенесли уместно): https://docs.unity3d.com/ScriptReference/AssetBundle.LoadFromFile.html

Я пытался адаптировать код оттуда, но пока не добился успеха, только не нашел сообщений об ошибках

var myLoadedAssetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.dataPath, "sharedassets11"));

Есть лиспособ достичь этого? Спасибо

1 Ответ

1 голос
/ 04 ноября 2019

Посмотрите на API для AssetBundle.LoadFromFile.

Существует второй метод AssetBundle.LoadAsset (или, альтернативно, также возможно AssetBundle.LoadAllAssets) вам понадобится:

var myLoadedAssetBundle = AssetBundle.LoadFromFile(Path.Combine(Application.dataPath, "sharedassets11"));
if (myLoadedAssetBundle == null)
{
    Debug.Log("Failed to load AssetBundle!");
    return;
}

var prefab = myLoadedAssetBundle.LoadAsset<GameObject>("NameOfTheAccordingObject");
Instantiate(prefab);

myLoadedAssetBundle.Unload(false);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...