![](https://img-blog.csdnimg.cn/20201014180756757.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
DOTS
文章平均质量分 66
小盖子
主攻Unity相关的技术美术相关内容...在此分享,望共同进步.
展开
-
Unity DOTS技术(十五) 物理系统
要解决性能的瓶颈问题,在DOTS中我们将不再使用Unity自带的物理组件.下面来分享一下在DOTS中当如何使用物理插件.原创 2024-06-09 09:50:35 · 315 阅读 · 0 评论 -
Unity DOTS技术(十四) Job与ParallelJob接口
4.需要注意的是在此多线程运算中不得使用Unity原有的类库进行运算,应当使用Mathematics进行运算。原创 2024-06-08 11:15:23 · 404 阅读 · 0 评论 -
Unity DOTS技术(十三) ComponentSystem及JobComponentSystem
1.继承ComponentSystem需要实现抽象OnUpdate()2.与SystemBase不同,ComponentSystem不包含LambdaSingleJobDescription,3.CompoentSystem的带代码都是在主线程上运行,不支持多线程.4.并不能在ForEach后面点出什么参数来编辑.5.功能上与SystemBase中使用主线程代码.Run功能类似,官方推荐使用.原创 2024-06-08 11:13:01 · 345 阅读 · 0 评论 -
Unity DOTS技术(十二) SystemBase修饰及操作
2.使用后必须对变量进行卸载,timeInt的类型是TempJob周期为4帧,我们可以使用WithDeallocateOnJobCompletion自动的在线程运行后进行卸载。1.在多线程中我们不能直接使用Int等类型,需要使用Native Container的内容,如上图我们使用了Native Container下的NativeArray的内容。在上节中我们讲到多线程操作,为避免对线程的操作导致数据错乱,我们需要为变量进行修饰.于是我们需要用到Native Container.原创 2024-06-07 08:55:36 · 331 阅读 · 0 评论 -
Unity DOTS技术(十一) SystemBase详解
在之前的分享中我们用到的系统父类有ComponentSystem主要操控主线程的,JobCoponentSystem主要操作多线程的.而SystemBase则可以兼容以上两者,操控主线程及多线程.原创 2024-06-07 08:54:13 · 600 阅读 · 0 评论 -
Unity DOTS技术(十) ChunkComponent块组件
块组件(ChunkComponent),与共享组件类似,但在共用组件时并不会将组件移动到新的块里面去.当将块组件的值进行修改时.将会把组件中的值进行一个统一的变化,不会产生一个新的组件。原创 2024-06-06 10:22:22 · 291 阅读 · 0 评论 -
Unity DOTS技术(八)状态组件
因为在ECS中没有回调,因而无从得知组件是否被销毁.所以我们需要使用ISystemStateComponentData.什么时ISystemStateComponentData状态组件?当物体被销毁时ISystemStateComponentData组件不会被销毁.因而我们可以在组件被销毁时在该组件中留下信息代表该组件的情况.原创 2024-06-05 11:23:07 · 249 阅读 · 0 评论 -
Unity DOTS技术(九) BufferElement动态缓冲区组件
在之前的学习中我们发现Entity不能挂载相同的组件的.当我们需要用相同的组件时则可以使用.IBufferElementData接口动态缓冲区组件来实现。原创 2024-06-06 10:19:12 · 347 阅读 · 0 评论 -
Unity DOTS技术(七)共享组件
共享组件的使用需要注意尽量选择不会经常变动的组件,当共享组件值发生修改时会使用实体被移动到新的Chunk中造成性能消耗.如下图目前所有的组件都是继承于IComponentData接口,但其实中部分实体其实在不同的实体中重复使用,为了性能更优化,于是我们可以将其使用IShaderComponentData组件将其共享处来.需要注意的是:共享组件需要使用AddShareComponentData进行添加。可以看出修改值后的组件则非相同组件,不修改则为相同组件。当值修改后相当于创建了一个新的共享组件。原创 2024-06-05 11:21:56 · 295 阅读 · 0 评论 -
Unity DOTS技术(六)World详解
下面讲解World的一些基本操作。原创 2024-06-04 11:42:16 · 651 阅读 · 0 评论 -
Unity DOTS技术(五)Archetype,Chunk,NativeArray
Chunk是一个空间,ECS系统会将相同类型的实体放在Chunk中.当一个Chunk放满后则会创建相同类型的一个Chunk.当一个Chunk存满了以后会创建新的Chunk进行储存.相同类型的一系列Chunk块称为ArchType。原创 2024-06-04 11:40:42 · 354 阅读 · 0 评论 -
Unity DOTS技术(四)World,System,Group
是ECS的一个全局管理者,可以对ECS中的内容进行增删改查,场景中可以有多个World但相互之间无法通讯.打开菜单栏Window > Analysis > Entity Debugger 界面。需要注意的是不能添加在同一个世界中,如别的世界原本有这个系统则原来的系统会消失。在左上方可以查看到新创建的世界,系统默认有一个Default World。组是一个特殊的系统,用于为系统分类及控制执行循序。一个系统只能存在在某一世界中而且只能有一个。当一个系统创建时默认会放到某个组内。这里例子指定为默认组。原创 2024-06-04 11:38:16 · 848 阅读 · 0 评论 -
Unity DOTS技术(三)JobSystem+Burst+批处理
在之前的例子中我们都中用的单线程与传统的编译器,下面我们试着使用JobSystem与打找Burst编译器来对比一下性能的差异.原创 2024-06-02 11:44:19 · 255 阅读 · 0 评论 -
Unity DOTS技术(二)ECS
ECS全称 (Entity Component System).即(E:实体 C:组件 S:系统).实际上即是数据方法分离.数据放在组件里,具体实现放在系统里.组件挂载在实体上.为了让大家快速了解,本次介绍是以下内容:下面举个简单的的例子:1.创建数据组件,继承IConponentData接口2.系统组件创建一个系统继承ComponentSystem3.创建一个中转组件,这样我们就可以将此脚本挂在物体上(比如一个Cube),这个脚本生成PrintComponentData1并挂在物体上.此时该原创 2024-06-02 11:43:24 · 352 阅读 · 0 评论 -
Unity DOTS技术(一)简介
传统的游戏开发中,如果有成千上万的物体在场景中运动,那么你一定会认为是疯了.但有了Dost技术这一些都将变成可能.如图场景中有10000个物体在同时运动,帧率即能保持在60Fps以上.就是因为使用了我们今天要介绍的DOTS技术.我将几篇博文详细的介绍各模块的使用方式。原创 2024-06-01 13:06:49 · 410 阅读 · 2 评论