Unity中的ECS编程
AndrewFan
编程是一种艺术
展开
-
ECS框架文档翻译一 Entities
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.htmlEntities 实体实体是ECS(实体组件系统)体系结构的三个主要元素之一。它们代表游戏或程序中的单个“物体”。一个实体(E)既没有行为也没有数据,它只是将一系列相关联的数据(来源于Compnent...原创 2019-08-04 21:01:29 · 1801 阅读 · 0 评论 -
ECS框架文档翻译二 World
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.htmlWorld一个World拥有一个EntityManager和一系列的ComponentSystems。你可以创建多个World对象,通常来说,你需要创建一个用于模拟的World和一个用于渲染...原创 2019-08-04 21:01:23 · 760 阅读 · 1 评论 -
ECS框架文档翻译三 Components
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.htmlComponents组件是ECS(实体组件系统)体系结构的三个主要元素之一。它们代表您的游戏或程序的数据。从本质上说,Entities(实体)是一个简单的标识符,用于索引一组组件集合。而System...原创 2019-08-04 21:01:18 · 787 阅读 · 0 评论 -
ECS框架文档翻译四 ComponentData
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.htmlComponentDataUnity中的ComponentData(标准ECS术语中的组件)是一个包含entity的数据实例的结构体。 ComponentData不能包含方法。根据旧的Unity系...原创 2019-08-04 21:01:12 · 877 阅读 · 0 评论 -
ECS框架文档翻译五 Shared ComponentData
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.htmlShared ComponentDataIComponentData适用于实体之间数据不同的情况,例如存储不同的世界坐标。 然而,当许多的实体,它们拥有相同的数据时,ISharedComponen...原创 2019-08-04 21:01:07 · 1658 阅读 · 0 评论 -
ECS框架文档翻译六 System State Components
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.htmlSystemStateComponents设计SystemStateComponentData这个数据组件的目的,是允许您跟踪系统内部的资源,并有机会根据需要适当地创建和销毁这些资源,而不依赖于某...原创 2019-08-04 21:00:59 · 849 阅读 · 0 评论 -
ECS框架文档翻译七 Dynamic Buffers
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.htmlDynamic Buffers(动态缓冲区)DynamicBufferssupersede fixed array support which has been removed.Dynamic...原创 2019-08-04 21:00:53 · 1066 阅读 · 0 评论 -
ECS框架文档翻译八 ComponentSystem
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.htmlSystems系统(ECS中的S),提供了将组件数据从其当前状态转换到其下一状态的逻辑。例如,系统可以通过计算方法[速度x自前一帧以来的时间间隔]来更新所有移动实体的位置。ComponentSy...原创 2019-08-04 21:00:47 · 587 阅读 · 0 评论 -
ECS框架文档翻译九 Job Component System
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.htmlJobComponentSystem自动作业(Job)依赖管理管理依赖关系很难,因此在JobComponentSystem中我们为你自动完成它。 规则很简单:来自不同系统的作业可以并行读取...原创 2019-08-04 21:00:41 · 818 阅读 · 0 评论 -
ECS框架文档翻译十 Entity Command Buffer
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.htmlEntity Command Buffer(实体命令缓存)EntityCommandBuffer类解决了两个重要问题:当在Job中时,无法访问EntityManager 当您访问Entity...原创 2019-08-04 21:00:34 · 1461 阅读 · 0 评论 -
ECS框架文档翻译十一 System Update Order
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.htmlSystem Update Order(系统更新顺序)要使用“组件系统组”来指定系统的更新顺序,您可以在你的system类的声明中加入[UpdateInGroup]属性,这会将你的system放入到...原创 2019-08-04 21:00:13 · 970 阅读 · 0 评论 -
ECS框架文档翻译十二 Accessing entity data
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.html访问实体数据遍历数据是应用ECS系统时最常见的任务之一。ECS系统通常一次性处理一组实体,从每个实体的一个或多个组件读取数据,然后执行计算,然后将结果写入另一个组件。通常来说,遍历实体和组件的最...原创 2019-08-04 21:00:05 · 446 阅读 · 1 评论 -
ECS框架文档翻译十三 Using IJobForEach
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.html你可以在JobComponentSystem中定义IJobForEach作业以读写组件数据。当此Job运行时,ECS框架会找出具有所需组件的所有实体,并为每个实体调用Job的Execute()方法。数据...原创 2019-08-04 20:59:57 · 743 阅读 · 0 评论 -
ECS框架文档翻译十四 Using IJobChunk
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.html使用IJobChunk您可以在JobComponentSystem中实现IJobChunk,这种Job可以按块(chunk)来遍历您的数据。JobComponentSystem将为每个块调用一次Ex...原创 2019-08-04 20:59:49 · 587 阅读 · 1 评论 -
ECS框架文档翻译十五 Using ComponentSystem and ForEach
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.html使用ComponentSystem您可以使用ComponentSystem来处理数据。ComponentSystem的方法在主线程上运行,因此无法利用CPU的多核,一般被使用在以下情况中:调试或...原创 2019-08-04 20:59:41 · 548 阅读 · 1 评论 -
ECS框架文档翻译十六 Manual iteration
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.html手动遍历你也可以在一个NativeArray中直接请求所有的块,并使用诸如IJobParallelFor之类的Job处理它们。 如果您需要以某种方式管理块,简单地遍历EntityQuery中的所有块...原创 2019-08-04 20:59:30 · 427 阅读 · 0 评论 -
ECS框架文档翻译十七 Component Groups
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.html使用EntityQuery查询数据读写数据的第一步是查找数据。 ECS框架中的数据是存储在组件中的,组件根据它们所属实体的原型,在内存中被组合在一起。 要定义ECS的数据视图,让其仅包含给你需要计算...原创 2019-08-04 20:59:15 · 586 阅读 · 0 评论 -
ECS框架文档翻译十八 Component WriteGroups
以下文档均来源于ECS官网:https://docs.unity3d.com/Packages/com.unity.entities@0.0/manual/ecs_entities.htmlWriteGroups(写入组)常见的ECS模式是让一个系统读取一组输入组件,然后写出到另一组输出组件。 但是,您可能希望覆盖该系统并根据您自己的输入集来更新输出组件。WriteGroups允许...原创 2019-08-04 20:58:25 · 634 阅读 · 0 评论 -
ECS框架文档翻译十九 Versions and Generations
版本号概述设置版本号(又称代)是为了检验潜在的变化。 除此之外,它们可用于实现廉价且高效的优化策略,例如, 当发现被操作的数据自上一帧以来已经被确认没有改变时,这些操作处理可能可以被跳过。通常情况下,通过对实体块执行一次性的非常快速的保守版本检查,可以轻松获得显著的性能提升。此页面列出并说明了ECS中使用的所有不同的版本号,重点解释了导致它们更改的条件。初步印象所有版本号都...原创 2019-08-04 20:58:04 · 335 阅读 · 0 评论