我需要加载文件,场景和在线程中播放动画.. 试图通过www在Android中加载文件... 如何通过线程做其他的东西? 但是游戏引擎怎么不让我们创建线程呢? 还是我的理解错误? 如何在UNITY3D中创建线程?如何在unity3d中为android平台使用c#线程?
回答
可以使用线程在Unity但发动机不是线程安全的。通常你运行分离的线程(来自Unity UI)来执行长时间运行的进程并检查结果(你不能在工作线程中与Unity进行交互)。 常用的方法是使用一个代表线程的类,它将由Unity主线程初始化。然后你启动一个该类的函数的工作线程,并让它做它的工作(在Unity主线程上运行的协程,所以不是真正的线程。上面(见接受的答案):
http://answers.unity3d.com/questions/357033/unity3d-and-c-coroutines-vs-threading.html
您也可能想尝试一个UnityGems包,达到同样的效果,但提供了便利(如封闭的支持)。见this page
HTH。 最好!
根据我对Unity的个人经验,除非线程不使用Unity的任何API,否则不能创建/运行单独的线程。因此,这意味着没有gameObjects或类似性质的东西。我自己成功地完成了自己的寻路工作,所以我知道这是可能的。祝你好运!我希望这有帮助。
这是正确的。只要该类不从MonoBehaviour继承,就可以在Unity中进行线程化。 – Esa
Unity3D中常用的代码是Coroutines。
IEnumerator DoSth()
{
...
yield retrun ... ;
}
呼叫/消费协程:
StartCoroutine(DoSth()); // OK
StartCoroutine("DoSth"); // Also fine
StopCoroutine("DoSth"); // You can stop it as well
协程并不是实际的线程。只有例如WWW功能才是真正的线程。 – Esa
协程不是线程,它们不执行并行编程。 –
- 1. 使用C#在Unity3d中停止线程
- 2. C++跨平台多线程?
- 3. 如何jdk1.7中使用sun.net.ftp.FtpClient Android平台
- 4. 如何在Android平台上使用Tensorflow?
- 5. 如何:在Windows平台上执行线程(C++)
- 6. 如何在Android平台上使用OpenCV C++特定示例?
- 7. 如何使水平线的Android编程
- 8. 本机C在Android平台
- 9. 如何在C#应用程序中使用C++类而不考虑平台?
- 10. 在C#中使用平台调用dll
- 11. 如何在MonoDroid中使用线程,使其与MonoTocuh跨平台兼容
- 12. 如何在Android中保护跨平台应用程序
- 13. 在C++项目中使用x86平台
- 14. 如何在WinForms C#中使用线程?
- 15. 如何在Android中跟踪C线程?
- 16. 以独立于平台的方式在C中使用线程和套接字
- 17. 如何在Android NDK中使用C++ 0x线程?
- 18. iBeacon应用程序如何与在线平台“沟通”?
- 19. 如何使用PSPDFKit检查在后台线程中使用主线程代码?
- 20. 后台线程和连接将使线程为前台线程
- 21. 如何在C中使用跨平台定位服务#
- 22. Android Native C++,使用线程
- 23. 如何在后台使用多线程提升线程
- 24. 为什么Unity3D只能在android平台上加载32位原生插件(.so)?
- 25. Android线程在后台
- 26. android addView在后台线程
- 27. 如何在android中绘制平行线
- 28. 使用后台线程的Android
- 29. 如何在android中为每个选项卡使用线程?
- 30. 如何在android中为多个线程使用多个按钮?
这是一个相当古老的问题,但由于我在这里冒险和任何以上的链接没有为我工作,这里是我发现有帮助 1. [好文章](http://www.albahari.com/threading/);和2.来自Unity Wiki的[作业队列示例](http://wiki.unity3d.com/index.php/JobQueue) – FullStackForger
只需修复损坏的链接。最好 – German