我怎样才能在组件实体引擎中定位精灵?

我正在构建我的第一个组件/实体引擎,我不确定我的一些select。 我在这里问我第一个疑问的建议。

我画了两个不同的行为的对象:

  1. 物理驱动的位置。

  2. 其他逻辑定义的位置。

目前,我只创建了第一种对象,添加到一些实体的一个Render component (其中包含关于要绘制的精灵的信息)和一个包含正文信息的Physic componentRendering system仅将Render components sprites连接到主视图, Physic System将拥有拥有Physic component每个实体并为每个实体定义精灵位置。

问题1)

直接通过物理系统访问(和修改)Sprites职位是否是一个有效的select?

问题2)

对于第二种types的对象,我应该使用只负责这个的第三个组件来管理精灵位置吗?

这是一个有效的解决scheme,或者我完全错了吗?

我对如何用这种系统管理逻辑和职位感到有点困惑……为我需要定义的每一个行为创建一个组件似乎有点令人难以置信。

Solutions Collecting From Web of "我怎样才能在组件实体引擎中定位精灵?"

Unity通过具有第三个单独的组件(称为Transform3D – 包含位置)来完成此操作。

那么你可以有物理系统,可以使用物理组件(如对撞机)和位置组件(Transform3D)。 然后物理系统使用物理组件和位置组件进行物理仿真,然后相应地更新位置组件。

和渲染系统,这将使用渲染器组件(如模型,或在你的情况下雪碧)。 渲染系统然后渲染位置组件告诉你的所有渲染器组件。