我们通过一个渲染Sprite的例子来解析 ReactiveSystem的用法
-
.我们来看收集器,这个由我们的Context,直接提供在代码中自动生成一般不用变,生成玩代码后GameMatcher会自动添加我们组件对应的收集器。
context.CreateCollector(GameMatcher.InterationDemoSprite);
-
Filter 这个是筛选,我们从过条件来判断是否满足需求,我们这里写的是 当前的entity包含一个 View组件和Sprite两个组件这样我们才能将图片渲染到屏幕上。
-
Execute 这个是执行函数通过收集器和筛选器,最终的所有符合条件的entities 会传过来,我们这里做的操作给当前entity的view组件中的gameobject, 添加SpriteRender Unity组件,用于渲染我们的精灵
-
Context是一种为Entity服务的的管理性数据结构。一个Entity不能自己独立创建,它必须通过
context.CreateEntity()
public class RenderSpriteSystem : ReactiveSystem<GameEntity>
{
public RenderSpriteSystem(Contexts contexts) : base(contexts.game)
{
}
protected override ICollector<GameEntity> GetTrigger(IContext<GameEntity> context)
{
return context.CreateCollector(GameMatcher.InterationDemoSprite);
}