У меня есть мобильный проект, который отображает различные AR опыт пользователя через мобильное приложение.Это приложение сделано в Unity.
Наряду с этим проектом Unity у нас есть второй проект, который хранит исключительно пакеты активов.Каждый опыт AR представляет собой префаб, помеченный уникальным именем пакета активов.Эти пакеты хранятся в Интернете и при необходимости загружаются в основное мобильное приложение.У нас возникают проблемы с корректным обновлением этих пакетов, когда такие изменения в префабе, как масштабирование или ротация, не отражаются в перестроенном пакете ресурсов.
Вот взгляд на процесс, который мы используемдля восстановления ресурсов это всего лишь простой скрипт.
[MenuItem("Spiff/Build AssetBundles")]
static void BuildAllAssetBundles()
{
// BuildPlatformBundles(BuildTarget.iOS);
BuildPlatformBundles(BuildTarget.Android);
}
static void BuildPlatformBundles(BuildTarget platform)
{
// We convert the passed platform enum to a string.
string platformFolder = platform.ToString();
string assetBundleDirectory = "Assets/AssetBundles/" + platformFolder;
// Build our bundles out to the relevent platform specific folder.
if (!AssetDatabase.IsValidFolder(assetBundleDirectory))
{
AssetDatabase.CreateFolder("Assets/AssetBundles/", platformFolder);
}
BuildPipeline.BuildAssetBundles(assetBundleDirectory, BuildAssetBundleOptions.None, platform);
}
В настоящее время мы используем 'BuildAssetBundleOptions.None'. Мы также попробовали установить флаг ForceRebuild, но это не имеет никакого эффекта.Правильно ли я полагаю, что Unity имеет своего рода внутренний кэш, который он хранит для пакетов активов?Если да, то можем ли мы как-то это очистить, чтобы я мог на 100% гарантировать, что сборка, которую я собираю, будет самой современной, основываясь на помеченном им сборном?