协程和线程

协程不是一种线程,运行在主线程上,不用使用lock


线程是独立于主线程,另外执行
除主线程之外的线程无法访问Unity3D的对象、组件、方法
如果同时你要处理很多事情或者与Unity的对象互动小可以用thread,否则使用coroutine
StartCoroutine(string  methodName)和StartCoroutine(IEnumerator  routine)都可以开启一个线程。区别在于使用字符串作为参数可以开启线程并在线程结束前终止线程,相反使用IEnumerator 作为参数只能等待线程的结束而不能随时终止(除非使用StopAllCoroutines()方法)
在Unity3D中,使用StopCoroutine(string  methodName)来终止一个协同程序,使用StopAllCoroutines()来终止所有可以终止的协同程序,但这两个方法都只能终止该MonoBehaviour中的协同程序
协同程序所在gameobject的active属性设置为false,当再次设置active为ture时,协同程 序并不会再开启;如是将协同程序所在脚本的enabled设置为false则不会生效


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部