Size: a a a

2020 March 12

AS

Anton Smetanin in unity3d.ru
Fox
спасибо)
Убери вообще yield return
источник

F

Fox in unity3d.ru
мне сохранение надо делать с прогресс баром а без этого никак
источник

AS

Anton Smetanin in unity3d.ru
Это в редакторе или в билде вообще происходит?
источник

F

Fox in unity3d.ru
в билде
источник

F

Fox in unity3d.ru
ну и в редакторе когда запускаешь тоже долго сохраняет
источник

AS

Anton Smetanin in unity3d.ru
Можешь в другой поток тогда вынести
источник

AS

Anton Smetanin in unity3d.ru
А в основном рисуй прогресс бар
источник

F

Fox in unity3d.ru
так я сделал функцию отдельно в потоке где сохраняю данные, а из этой функции отправляю знак в другую чтобы прогресс бар изменился
источник

AS

Anton Smetanin in unity3d.ru
Почему тогда у тебя yield return тут? Они не будут просто так работать в другом потоке
источник

AS

Anton Smetanin in unity3d.ru
Корутины только в основном работают
источник

AS

Anton Smetanin in unity3d.ru
Ну то есть, он у тебя должен упасть на вызове StartCoroutine, если ты в другом потоке
источник

AS

Anton Smetanin in unity3d.ru
Хотя я не проверял)
источник

F

Fox in unity3d.ru
StartCoroutine(сохраняю в файл) и передаю знак в другую обычную функцию что нужно изменить прогресс бар. Все верно?)
источник

AS

Anton Smetanin in unity3d.ru
Нет
источник

AS

Anton Smetanin in unity3d.ru
Вынеси в поток, вместо того, чтобы в корутине это делать
источник

AS

Anton Smetanin in unity3d.ru
private int _processedCount;

public void SaveTerrain()
{
   _processedCount = 0;

   Task.Run(() => {
       for (var i = 0; i < 10000000; i++) {
           _processedCount++;
       }
   });
}

private void Update()
{
   _progressBar.SetProgress((float)_processedCount / 10000000);
}
источник

F

Fox in unity3d.ru
но мне нужно чтобы SaveTerrain() выполнился один раз
источник

AS

Anton Smetanin in unity3d.ru
Так он один раз выполнится
источник

AS

Anton Smetanin in unity3d.ru
Почему ты решил, что несколько?
источник

F

Fox in unity3d.ru
а точно)) просто прочитал код не так, думал в апдейте стоит SaveTerrain().
источник