Сообщение от Halk-DS
На практике возникла проблема. Может кто сможет помочь, у меня во второй поток запущена функция вида:
Function UpdChunks()
delay 1000
For to - перебираем нужные чанки.
If Chunk(x,y)=0 - если чанк в поле зрения и его не существует то:
В этом месте создается меш, я делаю сразу на него ХайдЕнтити и в конце алгоритма, когда меш готов открываю его для рендера.
EndIf
Next
EndFunction
Результат странный. Как будто постройка чанка делается только на 1-2% из 100 и прерывается.
Кто нибудь уже пользовался библиотекой? Она нормальная? Или это я что то не то делаю?
|
У тебя поток, после прохода по циклу for, завершается (происходит выход из функции). Чтобы он работал постоянно нужно еще один внешний цикл.
А вообще забудь про мультипоточность в блице для чего-то кроме обычных программ, нет гарантии что 3д\2д будет корректно работать в разных потоках. На твоем-же примере:
Сообщение от Halk-DS
В этом месте создается меш, я делаю сразу на него ХайдЕнтити и в конце алгоритма, когда меш готов открываю его для рендера.
|
Когда только ты создал меш, он УЖЕ находится в списке рендерера, который в основном потоке УЖЕ имеет к нему доступ, и из-за асинхронности работы этих потоков ты просто рано или поздно схватишь MAV. Все эти библиотеки - костыли и хаки, и работать как положено они не будут.
Ты просто выбрал не тот инструмент.