位置: 编程技术 - 正文

Unity3D游戏开发之多线程及使用多线程(Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社)

编辑:rootadmin

推荐整理分享Unity3D游戏开发之多线程及使用多线程(Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:Unity3D游戏开发(第2版)pdf,Unity3D游戏开发标准教程,Unity3D游戏开发(第2版)pdf,Unity3D游戏开发pdf,Unity3D游戏开发(第2版),Unity3D游戏开发标准教程,Unity3D游戏开发标准教程,Unity3D游戏开发标准教程,内容如对您有帮助,希望把文章链接给更多的朋友!

Unity3D游戏开发之多线程及使用多线程

Unity3D中的多线程。线程是一个相当复杂的话题,但如果掌握了它,就可以从容的使用多个硬件处理器或处理很难划分管理数据块。

如在场景中用A*算法进行大量的数据计算,变形网&#;中操作大量的顶点,持续的要运行上传数据到服务器,二维码识别等图像处理,如果同时你要处理很多事情或者与Unity的对象互动小可以用thread,否则使用coroutine。

线程是在程序中与其他线程同时运行的进行。在多处理器的计算机上可以做到多个线程的真正的同步,更多的线程取决于有多个处理核心。

Unity3D编程时,总有个主线程执行你的代码,也可以创建额外的线程和主线程同时运行。而Unity中,你仅能从主线程中访问Unity3D的组件,对象和Unity3D系统调用。任何企图访问这些项目的第二个线程都将失败并引发错误,这是一个要重视的一个限制。

所以当你写代码时,你认为一个函数开始并达到它执行的点后返回,同样你做的东西又在另外一个函数中执行,但又没有发生相应的变化。操作系统决定你代码的执行,任何时候,你的代码只能暂时”休眠”掉,然后让另外的代码开始运行。

Unity3D中的多线程及使用多线程

在这个例子中,在第一个线程将A的&#;加载到CPU寄存器中准备&#;1后被中断,第二个线程来读取A的&#;,并减去,这时A应该是-,现在第一个线程重新开始,它在寄存器中的&#;1的结果存储于A,A变成了,而-已经丢掉了。

从根本上说,要在用多个线程在同时对变量或内存访问时,要采取很多预防措施来确保不会发生这样的事。所以Unity决定从另外线程访问这些变量或者内存是无效的,只是为了避免所有系统和框架对象出现问题。所以要确保一次只有一个线程来修改变量,这不意味着你不能用多线程工作,你可以用”排序”来解决这个问题。

C#中有lock这个关键字,以确保只有一个线程可以在特定时间内访问特定的对象,这里说对象是因为法锁定一个类型&#;(value type)或原型(primitive)。

1. int a = ;

2.

3. object guard = new object();

4.

5. void ThreadOneCode()

6. {

7. //一些代码在这

Unity3D游戏开发之多线程及使用多线程(Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社)

8.

9. lock(guard)

. {

. a = a &#; 1;

. }

.

. //其余一些代码在这

.

. }

.

. void ThreadTwoCode()

. {

. //一些代码在这

.

. lock(guard)

. {

. a = a - ;

. }

复制代码

所有都锁定在guard内,保证同一个时间只有一个线程通过guard访问它,你可以使用任何合适的对象。【狗刨学习网】现在你可能会有各种各样的问题,比如你要锁定的不止一件事,可能是互相嵌套的。那我们该怎么办呢?

我们这个类叫Loom,让你可以轻松在另一个线程运行代码,这里有两个要注意的功能:

RunAsync(Action)-在另一个线程上运行的一组代码.

QueueOnMainThread(Action,[可选]float time)-运行在主线程的语句(可选延迟).

用Loom.Current访问Loom-创建一个看不见的GameObject用来处理游戏主线程的互动,下面这个例子用Loom来更新一个网&#;所有的顶点乘的结果。

unity3d游戏开发之我见 游戏引擎想必大家都有所耳闻吧,比如当你在喝着可乐,盯着电脑屏幕,看到游戏场景内的角色在自己键盘鼠标的控制之下,享受着这种游戏的操作感

unity3D 游戏开发之工程代码框架设计思路MVC unity3D游戏开发之工程代码框架设计思路MVC设计目的1.使工程结构更规范。2.提高代码可读性,封装性,拓展性3.提高工作效率。正文内容:1.Frame的组成结

游戏开发之[水果忍者]:月流水持续近千万 推新模式 狗刨学习网报道/由HalfbrickStudios于年开发的一款在《水果忍者》在移动平台创造了2年内在全球游戏被下载3亿次的不朽成绩。而这款曾风靡全球的游戏

标签: Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社

本文链接地址:https://www.jiuchutong.com/biancheng/373039.html 转载请保留说明!

上一篇:Unity3D技术之资源数据库 (AssetDatabase)详解(unity 3d资源)

下一篇:unity3d游戏开发之我见(Unity3D游戏开发(第2版))

  • 税盘收费吗
  • 增值税不用交还要计提吗
  • 进口海关是指
  • 劳动收入与报酬的具体形式有哪些
  • 年初建账考虑要点有哪些
  • 增值税专用发票电子版
  • 计提坏账准备需要纳税调增吗
  • 特殊行业包括哪些
  • 捐赠和赞助业务的税务处理怎么做?
  • 当月计提的增值税是什么
  • 企业买电动车做资产如何做折旧?
  • 购入货物自用的进项税额转出分录怎么处理
  • 已经给员工交了社保能退吗
  • 公司报销员工的首饰可以税前列支吗
  • 税前列支的好处
  • 专票开户行信息少股份有限公司有影响吗?
  • 房产税的计税依据包含增值税吗
  • 对方发票丢失开什么证明
  • 资产减值损失如何结转本年利润
  • 外地培训产生的费用
  • 海运费怎么做会计分录
  • 汇总会计报表和合并会计报表均是
  • 企业微信收款的钱怎么提取出来
  • 计提税金及附加需要附原始凭证吗
  • win10内存完整性不兼容的驱动程序
  • 公司决议效力确认纠纷
  • 出纳日记账填写样本
  • sinutrain破解版
  • 贷款利息不能抵扣进项税
  • 提取的坏账准备怎么算
  • php array数组
  • hg8321r路由
  • 劳务费支出计入什么科目?
  • laravel url重写
  • 客户多付的货款叫什么
  • 以前年度的销售退回,冲减哪年的
  • 企业取得交易性金融资产时
  • yolov3怎么用
  • 拿到领料单如何做账
  • 应收账款确认坏账损失
  • python字典删除键值对方法
  • ps怎么参考线快捷键
  • 对公账户怎么打印
  • 无盘领发票要怎么办
  • 稿酬的支付方式
  • 企业职工薪酬如何确定
  • 个税更正申报后可以撤销吗
  • 不抵扣发票可以转抵扣吗
  • 存货跌价准备是谁的备抵账户
  • 一般纳税人购入需要安装的生产设备,其入账价值包括
  • SQL server 2008中的数据库能否只包含数据文件
  • 补交上年度企业所得税税额需要本年度纳税调增吗
  • 第二季度所得税表中研发费用
  • 小规模的认定标准
  • 印花税的计算公式与计算注意事项
  • 去年未分配利润 负数 结转今年
  • 发票信息不一致是怎么回事
  • 个税计提多了怎么办,跨年度了
  • 新准则公允价值变动科目余额为负数
  • 土地无形资产要摊销吗
  • 公司库存现金提现流程
  • 哪些减值准备一经计提不得转回
  • 企业产值什么意思
  • 如何理解股权激励
  • 应付账款用什么方法清查
  • MySQL 5.7双主同步部分表的实现过程详解
  • freebsd操作命令
  • gpt分区方法
  • windows查看文件内容的命令
  • opengl画直线函数
  • layui框架中修改用户成功后怎么跳转到登录界面
  • unity画面效果润色
  • jquery配合.NET实现点击指定绑定数据并且能够一键下载
  • jquery方法查询api
  • js页面滚动到指定位置
  • 吉林省残疾人保障金减免政策
  • 丰台和朝阳中间是哪里
  • 专利转让个人所得税转换为经营所得
  • 税控盘打印机设置参数
  • 城市建设维护税减免政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设