Unity Addressables предлагает создавать предметы асинхронно. Написал следующий код:
public async void SpawnItem(ItemInfo itemInfo, Transform parentPos)
{
GameObject item = await SpawnAsset(itemInfo.itemName, parentPos);
//действия с item
}
public async ValueTask<GameObject> SpawnAsset(string itemName, Transform spawnPoint)
{
for (int i = 0; i < addressableAssets.Count; i++)
{
string storeName = LocationShortName(addressableAssets[i].InternalId);
if (itemName != storeName) continue;
GameObject spawnedObject = await Addressables.InstantiateAsync
(addressableAssets[i], spawnPoint.position, spawnPoint.rotation, spawnPoint).Task;
spawnedObjects.Add(spawnedObject);
return spawnedObject;
}
return null;
}
По умолчанию тип ValueTask недоступен. Чтобы использовать его, через NuGet я устанавливаю пакет System.Threading.Tasks.Extensions и ValueTask становится доступен.
Однако после сохранения кода и перехода в редактор Unity, в консоли появляются ошибки.
После этого пакет ValueTask снова становится недоступен. Удалив его через NuGet и установив заново, картина повторяется: в vs все работает, но стоит открыть скрипт в unity, пакет становится недоступным. В чем может быть причина?