我正在构建我的第一个组件/实体引擎,我不确定我的一些select。 我在这里问我第一个疑问的建议。
我画了两个不同的行为的对象:
物理驱动的位置。
其他逻辑定义的位置。
目前,我只创建了第一种对象,添加到一些实体的一个Render component
(其中包含关于要绘制的精灵的信息)和一个包含正文信息的Physic component
。 Rendering system
仅将Render components sprites
连接到主视图, Physic System
将拥有拥有Physic component
每个实体并为每个实体定义精灵位置。
问题1)
直接通过物理系统访问(和修改)Sprites职位是否是一个有效的select?
问题2)
对于第二种types的对象,我应该使用只负责这个的第三个组件来管理精灵位置吗?
这是一个有效的解决scheme,或者我完全错了吗?
我对如何用这种系统管理逻辑和职位感到有点困惑……为我需要定义的每一个行为创建一个组件似乎有点令人难以置信。
Unity通过具有第三个单独的组件(称为Transform3D – 包含位置)来完成此操作。
那么你可以有物理系统,可以使用物理组件(如对撞机)和位置组件(Transform3D)。 然后物理系统使用物理组件和位置组件进行物理仿真,然后相应地更新位置组件。
和渲染系统,这将使用渲染器组件(如模型,或在你的情况下雪碧)。 渲染系统然后渲染位置组件告诉你的所有渲染器组件。