Редактор Unity намертво зависает на старте сцены после вызова .Result
void Start()
{
settings = LoadSettingsAsync().Result;
}
async Task<Settings> LoadSettingsAsync()
{
string json = await http.GetStringAsync(settingsUrl);
return JsonUtility.FromJson<Settings>(json);
}
Сервер отвечает за 100 мс, но редактор перестаёт отвечать, и его приходится снимать через диспетчер задач. Почему?
- Продолжению нужен главный поток, а он ждёт .Result
- HttpClient не работает внутри метода Start
- JsonUtility бесконечно разбирает большой файл
- У Task по умолчанию нет таймаута ожидания
