У меня есть огромное огромное понимание - как вычислить что-то тяжелое в отдельной теме, получить результат и «продолжить основную процедуру». Я разрабатываю настольную игру, а задачи «проверки платы» и «мышления AI» сильно усваивают процессор, поэтому я пытаюсь отделить вычисления от другого потока.Есть ли способ использовать потоки с Unity3d?
Я не .NET программист, в основном C++, я много читал о сопрограммах и потоках в c sharp и unity3d за последние 4 дня, но теперь я просто получил полный беспорядок в своей голове, полностью потеряв любой вид " что делать".
Я нашел, что единство все еще использует .NET2, поэтому нельзя использовать TPL или TPLv3. Я искал библиотеку Foundation Tasks (https://github.com/NVentimiglia/Unity3d-Foundation/wiki/4)-Unity-Tasks), но не знаю, как использовать ее для моего дела. Я смотрю на примеры и чувствую себя идиотом. Я пытался написать смесь нитей и сопрограммы самостоятельно, но теперь просто получил полный код беспорядочно без каких-либо результатов работы = (
Может ли кто-нибудь дать мой простой пример моего случая: когда объекты единицы имеют некоторые вычисления в другой поток, получая результат из его работы и продолжает «нормальное поведение».
В Unity3D абсолютно нет нитей. Эта информация широко доступна по миллионам QA. (Вы упоминаете «сопрограммы» - они никоим образом не связаны нитями. Coroutines относятся к ожиданию следующего графического фрейма и не имеют никакого отношения к обработке.) – Fattie
Во-вторых, обратите внимание, что это немыслимо, вам понадобится " отдельный процессор ", чтобы сделать« AI »для настольной игры. Это не в реальности, это было бы в 10 000 раз. – Fattie
В-третьих, вам нужно только google https://www.google.com/search?q=asset+store+threading, чтобы мгновенно найти пакеты потоковой передачи для Unity. Если (невероятно) вам нужно делать математические вычисления или тому подобное, это ваш ответ. (Невозможно представить, что вы напишете свою собственную систему потоков с нуля - не больше, чем писать рендер или физику с нуля!) – Fattie