DOTS
文章平均质量分 69
kylinok
这个作者很懒,什么都没留下…
展开
-
【UnityDOTS 小知识】如何通过DOTS修改材质属性以及替换材质与网格
修改材质属性,以及替换材质与网格,都需要对相应Graphic组件进行修改。材质属性需要映射到组件,而替换材质与网格,需要进行注册后,再进行替换(也是一种映射)。要注意的是,由于材质与网格都是托管对象,所以只能用托管ECS的方法进行逻辑处理。但是还是可以利用JOB进行效率提升(虽然不能用Burst了),例如使用Entities.ForEach。与ISystem的差异见下图。原创 2023-07-06 19:10:33 · 1391 阅读 · 0 评论 -
【UnityDOTS 小知识】在DOTS中实例化Prefab的方法
第一种方式,只是一种可能的ECS架构下的实例化方法。第二种方式,比较高级,但是用起来需要手动去创建所有相关的组件,更加灵活。但对于特殊的组件需要了解其添加方法来组合。原创 2023-07-06 17:01:36 · 820 阅读 · 0 评论 -
【UnitDOTS 小知识】ChunkComponet存储
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。原创 2023-07-06 16:45:31 · 211 阅读 · 0 评论 -
【UnityDOTS 小知识】如何异步利用Prefab实例化为一个Entity
利用RequestEntityPrefabLoaded组件,以及PrefabLoadResult组件,可以以异步的方式来获取对应Prefab的Entity原型。原创 2023-07-06 15:44:48 · 778 阅读 · 1 评论 -
【UnityDOTS 十三】Cleanup Component
一种特殊的组件,当Entity销毁时,要独立移除这个组件。意味着当你删除一个Entity后,这个组件还存在,那么该Entity也会存在。主要用于创建Entity时,进行初始化操作;或者销毁时,进行清理的操作。原创 2023-07-06 15:26:58 · 356 阅读 · 0 评论 -
【UnityDOTS 十二】Blob asset
Blob asset用于存储二进制数据,且为不可变数据。适合那种整个游戏只需要一份数据且不会改变的情况下使用,比如一些资源类的数据。原创 2023-07-06 12:18:29 · 405 阅读 · 0 评论 -
【UnityDOTS 十一】SharedComponent介绍
共享组件的值数组在单独的SharedComponentDataArrary中。每个Chunk中有一个单独的Handle指向这个值。所以这个Chunk中放的不只是ArcheType相同的Entity,他们所指向的ShareComponent值也是相同的。所以,不建议拥有大量独立值的ShareComponent存在,这样每个Chunk就只会放一个Entity了。要么会移到具有指向这个值的已有的Chunk中,要么新建一个Chunk来独立存储。可以把共享组件的值,视作为一种类型来对待。原创 2023-07-05 20:25:10 · 431 阅读 · 0 评论 -
【UnityDOTS 十】DynamicBufferComponent介绍
DynamicBufferComponent 作为一种特殊的组件存在,可以作为一种非托管内存下可动态调整带下的数组容器组件。原创 2023-07-05 15:42:56 · 295 阅读 · 0 评论 -
【UnityDOTS 九】Entity Command Buffer使用
Entity Command Buffer主要用于在Job中创建,销毁Entity,对Entity的Component的增加,删除。但无法实现对创建的Entity来setComponent。原创 2023-07-05 12:46:12 · 846 阅读 · 0 评论 -
【UnityDOTS 七】IAspect的使用
IAspect是Unity DOTS中用来更方便组织数据集合的接口。可以将我们需要的数据集合放到一个IAspect中,然后用这个自定义的IAspect去进行查询。原创 2023-07-05 10:37:47 · 797 阅读 · 0 评论 -
【UnityDOTS 小知识】RequireMatchingQueriesForUpdate与RequireForUpdate
例如:第一章 Python 机器学习入门之pandas的使用。原创 2023-07-04 19:16:18 · 953 阅读 · 0 评论 -
【UnityDOTS 六】预制实例化成Entity
部分自定义的组件,需要我们利用DOTS提供的接口,来转换成对应的Component附加到Entity中去。} }} }} }} }} }利用Baker转换对应的Component到对应的Entity中。定义一个自己想要添加到Entity身上的Component结构在想要挂载这个Component的Entity对应的GameObject身上挂载一个MonoBehaviour脚本,脚本的内容就是你想要转换为对应Component的内容。原创 2023-07-04 18:51:19 · 1081 阅读 · 0 评论 -
【UnityDOTS 五】遍历与查找数据(重点)
一般的逻辑步骤:先查找到一大片符合你要求的数据集合,然后再遍历这些集合中的数据,然后根据你的算法或者要求去更新、计算这些数据。例如:以上就是今天要讲的内容,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。原创 2023-07-04 12:21:07 · 1080 阅读 · 0 评论 -
【UnityDOTS 二】Entity的理解
ECS作为DOTS中的一种面向数据的设计思想,理解内核还是很重要的,后续再加上其他内容。原创 2023-07-02 13:29:31 · 1019 阅读 · 0 评论 -
【UnityDOTS 小知识】Job的依赖项
因为Job多数都是多线程处理,所以处理好线程之间的依赖关系就很重要。类比于Task之间的依赖处理。原创 2023-07-04 16:10:26 · 344 阅读 · 0 评论 -
【UnityDOTS 四】System的理解
SystemGroup可以用来管理组内的System,也可以使用Enable来控制整个Group是否启用。备注:需要控制SystemGroup的空跑Update,原理与MonoBehavoiur类似。在System中尽可能不要定义Public数据对外提供数据功能,破坏了线程调度的安全性(虽然System在主线程中运行,但是对外提供比如对Job提供了访问数据的功能,就会造成线程不安全)。原创 2023-07-04 10:36:41 · 958 阅读 · 0 评论 -
【UnityDOTS 三】Component的理解
Component作为ECS中承载数据的结构,了解他相关内容是非常必要的,面向数据的设计,就是要设计好Component。提示:以下是本篇文章正文内容,下面案例可供参考Unity中提供了各种类型的Component来让玩家继承使用。其目的主要就是用来提升查询效率,高效地组织数据。看文档里面也是各种各样的,看起来头疼,还是在后面的使用中慢慢一个个认识他们吧。原创 2023-07-02 14:05:53 · 471 阅读 · 0 评论 -
【UnityDOTS 一】JOBS理解
JOB作为DOTS中重要的多线程工具,使用起来感觉相对简单易用。但其实多线程,能够用起来还是很多要注意的,稍不注意就有各种奇奇怪怪的问题。个人之前很喜欢单线程开发,就因为简单,大脑想问题也简单,出错也容易找。多线程就麻烦多了,而且出错也难从断点找根源。希望JOBS这个工具,能解除这种恐惧。原创 2023-07-02 11:28:53 · 989 阅读 · 0 评论