Unity2019 DOTS基础入门之什么是DOTS

Unity 新核心DOTS介绍

	最近有时间接触unity2019,因为B站Unity官方经常更新视频,也了解了一些Unity的新特性,看了那些视频,脑海中就浮现出这样一句话:“大人,时代变了。”

DOTSData-Oriented Technology Stack(数据导向的技术栈): 借助Unity全新高性能多线程式数据导向型技术堆栈(DOTS),充分利用当今的多核处理器。游戏的运行速度会变得更快,其他项目也更容易读取和重复使用您的代码。

为什么使用DOTS

关于为什么使用DOTS当然要和现有的核心相比较才更能明白

传统的MonoBehavior

在编辑器中搭建游戏场景,并编写继承自MonoBehavior的脚本控制游戏对象的各种状态,初学者一般都是每个脚本都会继承自MonoBehavior,相对于一些老鸟在编写框架时一般就只有几个脚本会继承MonoBehavior,继承MonoBehavior有什么不好呢?为什么老鸟们尽量避免继承MonoBehavior呢?使用MonoBehavior怎样使用多线程呢?带着这些问题我们再来看看MonoBehavior
  • MonoBehavior会占用大量的内存空间,不支持多线程

    • 基础知识打前阵:在面向对象编程中,我们最熟悉的当然是Class了,所有的代码都必须包含在一个类里面,你可以在里面添加字段与行为,当需要一个对象时,只需要new一下,就可以获得这个类的实例了。当我们去new对象时,在计算机系统中,就会以这个类为模板,在堆内存中去申请一块空间,这块空间就会存储我们声明的字段,行为。那显而易见,这个类中字段与行为越多,在创建这个实例的时候申请的这块内存就越大。

    • 说了那么多,关我MonoBehavior什么事?在我们继承MonoBehavior时,你看看MonoBehavior中有多少继承,每个继承中又有多少字段和行为。在这并不是嫌弃MonoBehavior太大(好吧,就是嫌弃),关键是其中的字段在我们实现的功能中一般都用不到。退一步讲,在实际操作时,还是应减少继承MonoBehavior。

    • 另外,Unity不支持多线程,PS:我不支持多线程还碍着你啦,你王者荣耀跑不动了还是咋滴。话是这么说,但是且不说PC端的“核战“,现在的手机也是多核多线程的天下,充分地利用多线程可以提高性能何乐而不为啊。

闪亮登场的DOTS

为解决传统MonoBehavior的各种问题,DOTS载着新的使命缓缓而来
  • 面向数据的开发模式,有多少功能,需要多少数据,我就声明多少内存
  • 使用任务系统封装了多线程,不需要关注怎样使用多线程,因为你已经使用了多线程
  • 新的优化指令编译器(就这么叫吧),将某些指令在相应的平台进行优化,执行效率更高

最后欢迎大家关注我的欢迎大家访问我的个人博客!!!

猜你喜欢

转载自blog.csdn.net/weixin_36382492/article/details/103993825