【Unity】Dots(多线程式数据导向型技术堆栈)

一、什么是DOTS?

全称Data oriented Tech Stack,中文既是多线程式数据导向型技术堆栈,包括以下几个部分:
ECS(Entity Component System):编写高性能代码。ECS为游戏设计提供较好的方式,讲数据和行为分离,使开发者可以专注于解决实际问题。
Job System:编写多线程代码。在Job System前,Unity对多线程的支持并不是那么友好,开发者只能使用多线程做数据、网络等功能开发,有关对象的操作都只能再主线程中操作,而新的Jos System 以安全、易用的方式利用多核处理器,允许开发者写出完全、快速的代码,同时提供保护,避免出现线程安全等问题。
Burst编译器:编译生成高性能代码。Burst是一个新的LLVM-based, math-aware的后端编译器(backend compiler)。它把C# jobs编译高度优化的机器码,充分利用目标平台的特定能力。

二、如何使用DOTS?

Unity官方还未发布正式版本的DOTS,但在网易最新研发的游戏《天谕》已经见到了DOTS的身影,“网易天谕手游:Unity的DOTS在多线程开发的易用性和安全性方面提供了保障,《天谕》手游借此开发了多种鱼群生态行为和优化算法,实现了40余种、8000多条,不同鱼群生态的海底效果。
我们在iPhone6s 单worker线程跑5000条鱼的情况下,按照耗时能达到理论上250帧 ,在核心数更多的手机上,可以有更加优秀的性能表现。Unity的DOTS确实为更底层的性能提升提供了可能性,是一个革命性的技术。
以下是iphone 6s上5000条鱼可以跑250帧的耗时分布:
在这里插入图片描述
”。由此可见,DOTS对游戏性能的提升。

Unity环境配置

前提环境,这里推荐最新的Unity 版本
1.Window-Package Manager打开包管理窗口,点击下拉菜单Advanced,选择show preview package(Dots还未正式发布),
在这里插入图片描述
2.选中Entities,点击右下角Install进行下载安装,注意:在Unity最新版中,下载Entities时,会自动讲它所依赖的资源包下载,譬如Burst、Jobs等资源包
在这里插入图片描述
安装成功
在这里插入图片描述
3.仅安装以上的资源包,我们还无法正常使用Dots,还需导入Hybrid Renderer资源包,用来渲染显示
在这里插入图片描述
至此Dots环境搭建就完成了。
更新中…

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Unity DOTS(DOTS: Data-Oriented Technology Stack)是Unity的一种数据导向技术堆栈,它旨在提高游戏性能和可扩展性。它基于实体组件系统(Entity-Component-System,ECS)的概念,其中游戏对象被拆分为实体(Entity)和组件(Component),并通过系统(System)进行处理。 在Unity DOTS中,可以使用实体组件系统来管理和处理游戏对象。通过将游戏对象转换为实体和组件的形,可以实现高效的数据处理和并行计算。例如,在创建实体时,可以使用GameObjectConversionUtility.ConvertGameObjectHierarchy函数将GameObject转换为Entity,并使用IConvertGameObjectToEntity接口进行自定义转换。然后,可以使用系统(System)对实体和组件进行处理,例如旋转方块事件。 Unity DOTS的优势包括更高的性能,更好的可扩展性和更方便的并行计算。通过采用数据导向的设计,可以减少内存访问和数据处理的开销,从而提高游戏的帧率和响应性。 总而言之,Unity DOTS是一种数据导向技术堆栈,通过实体组件系统和并行计算来提高游戏性能和可扩展性。它可以通过转换游戏对象为实体和组件的形,并使用系统进行处理来实现。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [UnityDots技术入门](https://blog.csdn.net/m0_37920739/article/details/108181541)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Unity DOTS简明教程](https://blog.csdn.net/mango9126/article/details/105219215)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值