码迷,mamicode.com
首页 > 其他好文 > 详细

HelloCube:ForEach

时间:2019-08-08 23:52:22      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:利用   检查   分析   节点   sys   线程   system   data   hello   

此示例演示了一个简单的ECS系统,它可以旋转一对立方体。

它显示了什么?

此示例演示了ECS中数据和功能的分离。
数据存储在组件中,而功能则写入系统。
RotationSpeedSystem_ForEach 使用存储在 RotationSpeed_ForEach 组件中的data更新对象的旋转。

ComponentSystems和Entities.ForEach

RotationSpeedSystem_ForEach是一个ComponentSystem,它使用Entities.ForEach委托来遍历实体。
此示例仅创建单个实体,但如果向场景添加了更多实体,则RotationSpeedSystem_ForEach会更新所有实体 - 只要它们具有RotationSpeed_ForEach组件(并且在将GameObject的Transform转换为ECS组件时添加了旋转组件)。
请注意,使用Entities.ForEach的ComponentSystems在主线程上运行。
要利用多个内核,可以使用JobComponentSystem(如下一个HelloCube示例所示)。

从GameObject转换为Entity

ConvertToEntity MonoBehaviour在唤醒时将GameObject及其子节点转换为实体和ECS组件。
目前,ConvertToEntity可以转换的内置Unity MonoBehaviours集包括Transform和MeshRenderer。
您可以使用实体调试器(菜单:窗口> 分析> 实体调试器)来检查转换创建的ECS实体和组件。
您可以在自己的MonoBehaviours上实现IConvertGameObjectEntity接口,以提供ConvertToEntity用于将存储在MonoBehavi中的数据转换为ECS组件的转换函数。
在此示例中, RotationSpeedAuthoring_ForEach MonoBehaviour使用IConvertGameObjectEntity在转换时将RotationSpeed_ForEach组件添加到实体。

HelloCube:ForEach

标签:利用   检查   分析   节点   sys   线程   system   data   hello   

原文地址:https://www.cnblogs.com/longsl/p/11324206.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!